2013-05-16 45 views
2

javascript代码:延长JSON对象的JavaScript

window.mybooks={"books": [{"name":"book one","author":"Samuel Peter"},{"name":"book two","author":"Samuel Anderson"}]}; 

如何新书添加到window.mybooks?

{"name":"book three","author":"Samuel Abelson"} 

UPDATE:

奇怪,有很多相同的答案,而不是为我工作......这是什么原因?

我确实发现该对象是生成的,可能是不正确的。它看起来像这样:

window.mybooks={"books": [{"name":"book one","author":"Samuel Peter"},{"name":"book two","author":"Samuel Anderson"},]}; 

任何提示如何纠正它并mayabe然后按是否行得通呢?

+1

你的意思是像window.mybooks.books.push(new_book)? – Shanimal

+3

这不是JSON!它只是一个JavaScript对象。 JSON是数据的*字符串表示*,用于传输。 –

回答

9
window.mybooks.books.push({"name":"book three","author":"Samuel Abelson"}); 
+0

访问该对象时,不需要明确的'window.'前缀。 –

+0

@ŠimeVidas:有时它是很好的安全:) –

+1

当在罗马... – Shanimal

1
var newBook = { 
    "name": "book three", 
    "author": "Samuel Abelson" 
}; 
mybooks.books.push(newBook); 
+0

为什么浪费推送空间? – mihsathe

+0

@ alex23请查看帖子更新。谢谢。 – Jigberto

7

使用Array.push

var newBook = {"name":"book three","author":"Samuel Abelson"}; 
mybooks.books.push(newBook); 

如果你不是在窗口背景下明确使用window.mybooks.books.push(newBook);

+0

请检查帖子更新。谢谢。 – Jigberto

+0

@Jigberto它适用于我..看到这个小提琴http://jsfiddle.net/F9DmY/ – PSL

1
var newBook = {"name":"book three","author":"Samuel Abelson"}; 
mybooks.books.push(newBook); 

试试这个它应该工作。使用Javascript Array.push

+0

请检查后更新。谢谢。 – Jigberto