Converte la stringa javascript per una matrice
-
01-10-2019 - |
Domanda
Sto recuperando un array di oggetti da un campo di input HTML nascosto. La stringa sto ottenendo è:
"{"id":"1234","name":"john smith","email":"jsmith@blah.com"},{"id":"4431","name":"marry doe","email":"mdoe@blah.com"}"
Ora ho bisogno di passare questo come un array di oggetti di nuovo. Come faccio a convertire questa stringa in array di oggetti?
Soluzione
var array_of_objects = eval("[" + my_string + "]");
Esegue la stringa come codice, che è il motivo per cui abbiamo bisogno di aggiungere il [] per renderlo un oggetto. Questo è anche uno dei pochi usi legittimi per eval come il modo più semplice e veloce. : D
Altri suggerimenti
Supponendo che str
detiene sintassi valida JSON, si può semplicemente chiamare eval(str)
.
Per ragioni di sicurezza, è meglio usare una JSON parser , in questo modo:
JSON.parse(str);
Si noti che str
devono essere confezionate in []
essere una matrice JSON valido.
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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow