Как сделать простой массив JSON с push - PullRequest
2 голосов
/ 07 июня 2011

Если у меня есть запись в блоге, и я нажимаю комментарии со строкой:

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"}]

Что мне нужно изменить, чтобы получить это?

1 Ответ

3 голосов
/ 08 июня 2011

Подождите, 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, если это ваш собственный код.

Итак, в основном ... сделайте его массивом, и он будет работать так, как вы ожидаете.

...