Ответ 1
Использование jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj
- ваш объект JSON.
Я хотел бы преобразовать эту строку
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
в массив из двух объектов JSON. Как мне это сделать?
лучше
Использование jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj
- ваш объект JSON.
Как указал 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"]);
}
надеюсь, что это поможет.
Проще всего.
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
Добавлять дополнительные [
и ]
в начало и конец строки. Это сделает массив. Затем используйте eval()
или некоторый безопасный сериализатор JSON, чтобы сериализовать строку и сделать ее реальным типом данных JavaScript.
Вы должны использовать https://github.com/douglascrockford/JSON-js вместо eval()
. eval - это только если вы выполняете быструю отладку/тестирование.
Если вы используете jQuery, можно использовать функцию parseJSON и предпочтительнее использовать встроенную функцию eval()
для JavaScript.
Я знаю, что многие люди говорят об использовании eval. функция eval() js вызовет компилятор и может предложить ряд угроз безопасности. Лучше избегать его использования, где это возможно. Функция parse предлагает более безопасную альтернативу.