我有一个
JSON结构;
{
books: [
{"id": "book1", "title": "Book One"},
{"id": "book2", "title": "Book Two"}
]
}
代表;
function BookList() {
this.books = new Array();
}
BookList.prototype.addBook = function(b) {
this.books[this.books.length] = b;
}
function Book(id, title) {
this.id = id || '';
this.title = title || '';
this.chapters = new Array();
}
Book.prototype.addChapter = function(c) {
this.chapters[this.chapters.length] = c;
}
在BookList中创建Book对象数组的最佳方法是什么?
使用jQuery,您只需使用$.parseJSON(jsonData).books来分配BookList数组并自动获取属性值,但不会使用原型函数创建所需的对象.
是迭代JSON数组并单独创建每个Book对象的唯一方法吗?这个问题涉及从JSON:Parse JSON String into a Particular Object Prototype in JavaScript创建特定的原型对象.
我想这可以扩展为适用于具有正确迭代级别的BookList,并从那里应用于Book对象的章节.
在使用$.parseJSON进行初始赋值后是否可以更改对象类型?
最佳答案
var json = {
books: [
{"id": "book1", "title": "Book One"},
{"id": "book2", "title": "Book Two"}
]
};
var list = new BookList();
list.books = json.books.map(convertToBook);
function convertToBook(book) {
return new Book(book.id, book.title);
}