2010-04-26 4 views
5

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

"{"id":"1234","name":"john smith","email":"[email protected]"},{"id":"4431","name":"marry doe","email":"[email protected]"}" 

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

+0

Включен ли он в '[]'? – SLaks

ответ

12
var array_of_objects = eval("[" + my_string + "]"); 

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

+0

FYI, вы также можете использовать метод JSON.parse, если используете библиотеку парсеров JSON. Спасибо SLaks http://stackoverflow.com/questions/2710556/convert-javascript-string-to-an-array/2710558#2710558 –

6

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

По соображениям безопасности, то лучше использовать JSON parser, как это:

JSON.parse(str); 

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

0
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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^