#javascript #json
#javascript #json
Вопрос:
Я не могу передать объект в формате JSON, но console.log() работает. console.log() показывает, что происходит добавление объекта, но не отображается строка json?
var results = [{
"id": 0,
"name": "Green",
"category": "project",
"year": 2008,
"description": "my description",
"comments": [{
"rating": 5,
"comment": "Perfect",
"author": "Sandra",
"date": "2012-10-16T17:57:28.556094Z"
}, {
"rating": 4,
"comment": "Cool",
"author": "Milena",
"date": "2014-09-05T17:57:28.556094Z"
}, {
"rating": 3,
"comment": "No bad",
"author": "Milan",
"date": "2015-02-13T17:57:28.556094Z"
}, {
"rating": 4,
"comment": "Good job",
"author": "Toma",
"date": "2013-12-02T17:57:28.556094Z"
}, {
"rating": 2,
"comment": "OK",
"author": "Aleksandar",
"date": "2011-12-02T17:57:28.556094Z"
}]
}];
document.getElementById('show').innerHTML = results[0].comments[1].author;
document.getElementById("sendComment").onclick = function() {
var hg = {
"rating": 1,
"comment": "Hello",
"author": "X",
"date": "2014-09"
}
results[0].comments.push(hg);
console.log(results[0].comments);
}
<div id='show'></div>
<button id='sendComment'>Send</button>
Комментарии:
1. Во-первых, у вас нет JSON, просто объект, во-вторых, если вы можете видеть его в консоли, он, вероятно, работает по назначению, он не будет обновлять ваши файлы и будет виден в исходном коде?
2. Работает нормально….. Итак, что же не работает. Когда вы обновляете JSON, он не обновляет ваш файл JSON. Он просто обновляет его в памяти….
3. попробуйте здесь jsfiddle.net/gojk8ve3 , после обновления, все то же самое
4. как сохранить объект в массиве?
5. потому что это не постоянное изменение. Вы не можете внести постоянные изменения с помощью клиентского JavaScript. Если вы хотите, чтобы все пользователи видели это, вам нужен код на стороне сервера. Если это только люди, использующие этот браузер, у вас есть localStorage.
Ответ №1:
результаты [0].комментарии — это массив объектов, а не строка JSON. Все работает нормально. В массив добавляется новый объект.
Комментарии:
1. Почему? Если вы нажмете кнопку в следующий раз, вы увидите, что добавляется еще один такой же объект.
2. Чтобы сохранить данные на клиенте после обновления страницы, используйте, например, JSON.stringify(результаты[0].комментарии) и localstorage