Я получаю массив объектов от скрытого поля ввода HTML. Строка, которую я получаю:
"{"id":"1234","name":"john smith","email":"jsmith@blah.com"},{"id":"4431","name":"marry doe","email":"mdoe@blah.com"}"
Теперь я должен передать это как массив объектов снова. Как я преобразовываю эту строку в массив объектов?
var array_of_objects = eval("[" + my_string + "]");
Это выполняет строку как код, поэтому нам нужно добавить [], чтобы сделать ее объектом. Это также одно из немногих законных применений eval, поскольку это самый быстрый и простой способ. : D
Предполагая, что str
содержит допустимый синтаксис JSON, вы можете просто вызвать eval (str)
.
По соображениям безопасности лучше использовать парсер JSON , например:
JSON.parse(str);
Обратите внимание, что str
должен быть заключен в []
, чтобы быть допустимым массивом JSON.