Javascript 在下面的代码中,JSON.parse()和JSON.stringify()在做什么。我正在建一个图书图书馆
这是我为本地存储书籍而编写的代码。我在构建一个Youtube教程的时候看了它,我似乎还不了解JSON的作用。localStorage可以以字符串格式保存数据,所以在Javascript中将其用作对象数据之前,需要使用JSON.parse()方法将其转换为对象 将其保存回localStorage时,需要使用JSON.stringify()Javascript 在下面的代码中,JSON.parse()和JSON.stringify()在做什么。我正在建一个图书图书馆,javascript,json,oop,Javascript,Json,Oop,这是我为本地存储书籍而编写的代码。我在构建一个Youtube教程的时候看了它,我似乎还不了解JSON的作用。localStorage可以以字符串格式保存数据,所以在Javascript中将其用作对象数据之前,需要使用JSON.parse()方法将其转换为对象 将其保存回localStorage时,需要使用JSON.stringify()JSON.parse(localStorage.getItem('books'))从localStorage(始终是字符串)获取books的值,并将该值解析为ja
JSON.parse(localStorage.getItem('books'))
从localStorage(始终是字符串)获取books
的值,并将该值解析为javascript对象。
另一方面,
localStorage.setItem('books',JSON.stringify(books))
将对象转换为字符串,以便可以在localStorage
中设置它(您只能将字符串放入本地存储)。阅读此内容:您可以在此处阅读JSON:。总而言之:JSON.stringify()
方法将JavaScript对象或值转换为JSON字符串,而JSON.parse()
方法解析JSON字符串,构造字符串描述的JavaScript值或对象。setItem不正确。。。您正在字符串化一个字符串,而不是variableAs@charlietfl所说的,更详细一点:您使用了localStorage.setItem('books',JSON.stringify('books'))
,您应该使用的地方(根据您的感知意图猜测)localStorage.setItem('books',JSON.stringify(books))
。您是正确的。正如@charlietfl在对问题的评论中指出的那样,OP犯了一个错误,即stringify('books')
,而不是stringify(books)
。只是指出它=不是你的错=只是像我一样错过了它,直到我看到评论。。。
class Store{
static getBooks(){
let books;
if(localStorage.getItem('books') === null){
books = [];
}else{
books = JSON.parse(localStorage.getItem('books'));
}
return books;
}
static addBook(book){
//get the books form The GetBooks() Function
const books = Store.getBooks();
books.push(book);
localStorage.setItem('books',JSON.stringify('books'));
}
}