Преобразовать строку JavaScript в массив - PullRequest
5 голосов
/ 26 апреля 2010

Я получаю массив объектов из скрытого поля ввода html. Строка, которую я получаю:

"{"id":"1234","name":"john smith","email":"jsmith@blah.com"},{"id":"4431","name":"marry doe","email":"mdoe@blah.com"}"

Теперь мне нужно снова передать это как массив объектов. Как мне преобразовать эту строку в массив объектов?

Ответы [ 3 ]

12 голосов
/ 26 апреля 2010
var array_of_objects = eval("[" + my_string + "]");

Это выполняет строку как код, поэтому нам нужно добавить [], чтобы сделать ее объектом. Это также одно из немногих законных применений для eval, поскольку это самый быстрый и простой способ. : D

8 голосов
/ 26 апреля 2010

Предполагая, что str содержит действительный синтаксис JSON, вы можете просто позвонить eval(str).

Из соображений безопасности лучше использовать JSON-парсер , например:

JSON.parse(str);

Обратите внимание, что str должен быть заключен в [], чтобы быть допустимым массивом JSON.

0 голосов
/ 30 марта 2014
var str=eval([{'id':'1','txt':'name1'},{'id':'2','txt':'name2'},{'id':'3','txt':'name3'}])
for(var i=0;i<str.length;i++)
{
alert(str[i].txt);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...