如果我有一篇博文,我会用以下内容推送评论:
blogpost.comments.push({ username: "fred", comment: "Great"});
JSON的评论部分如下所示:
"comments":[{"0":{"username":"jim","comment":"Good",},"1":{"username":"fred","comment":"great"}}]
理想情况下,我希望看到JSON没有数字加法(“0”,“1”等)并且更平坦。类似的东西:
"comments":[{"username":"jim","comment":"Good"},{"username":"fred","comment":"great"}]
为了得到这个,我需要改变什么?
答案 0 :(得分:3)
等等,blogpost.comments
是一个JavaScript数组,还是其他什么?如果它是一个JavaScript数组,我不会看到执行第一行代码会如何描述更新JSON对象。我希望它会自动完成您的预期,即在数组的末尾推送一个新项目。
通常,如果您有一个数组blogpost.comments
,则使用此值:
[{"username":"jim","comment":"Good"}]
然后执行:
blogpost.comments.push({ username: "fred", comment: "Great"});
您肯定最终会得到blogpost.comments
的值:
[{"username":"jim","comment":"Good"}, { "username": "fred", "comment": "Great"}]
这让我相信blogpost.comments
实际上并不是一个数组,而是另一个数组。如果它是您自己的代码,您应该为blogpost.comments.push
提供代码。
所以,基本上......把它变成一个数组,它会像你期望的那样工作。