Преобразование строки JSON в массив объектов JSON в Javascript
Я хотел бы преобразовать эту строку
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
в массив из двух объектов JSON. Как мне это сделать?
лучше
Ответ 1
Использование jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj - ваш объект JSON.
Ответ 2
Как указал Luca, добавьте дополнительную строку [] в свою строку и используйте следующий код:
var myObject = eval('(' + myJSONtext + ')');
чтобы проверить его, вы можете использовать нижеприведенный фрагмент.
var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
var myObject = eval('(' + s + ')');
for (i in myObject)
{
alert(myObject[i]["name"]);
}
надеюсь, что это поможет.
Ответ 3
Проще всего.
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
Ответ 4
Добавлять дополнительные [ и ] в начало и конец строки. Это сделает массив. Затем используйте eval() или некоторый безопасный сериализатор JSON, чтобы сериализовать строку и сделать ее реальным типом данных JavaScript.
Если вы используете jQuery, можно использовать функцию parseJSON и предпочтительнее использовать встроенную функцию eval() для JavaScript.
Ответ 6
Я знаю, что многие люди говорят об использовании eval. функция eval() js вызовет компилятор и может предложить ряд угроз безопасности. Лучше избегать его использования, где это возможно. Функция parse предлагает более безопасную альтернативу.