Подтвердить что ты не робот

Преобразование строки JSON в массив объектов JSON в Javascript

Я хотел бы преобразовать эту строку

{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}

в массив из двух объектов JSON. Как мне это сделать?

лучше

4b9b3361

Ответ 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.

Вы должны использовать https://github.com/douglascrockford/JSON-js вместо eval(). eval - это только если вы выполняете быструю отладку/тестирование.

Ответ 5

Если вы используете jQuery, можно использовать функцию parseJSON и предпочтительнее использовать встроенную функцию eval() для JavaScript.

Ответ 6

Я знаю, что многие люди говорят об использовании eval. функция eval() js вызовет компилятор и может предложить ряд угроз безопасности. Лучше избегать его использования, где это возможно. Функция parse предлагает более безопасную альтернативу.