Je voudrais convertir cette chaîne
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
à un tableau de 2 objets JSON. Comment devrais-je le faire?
meilleur
Utilisation de jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj
est votre objet JSON.
Comme Luca l’a indiqué, ajoutez un supplément de []
à votre chaîne et utilisez le code ci-dessous:
var myObject = eval('(' + myJSONtext + ')');
pour le tester, vous pouvez utiliser l'extrait ci-dessous.
var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
var myObject = eval('(' + s + ')');
for (i in myObject)
{
alert(myObject[i]["name"]);
}
j'espère que ça aide..
Aussi simple que cela.
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
Ajoutez des éléments supplémentaires [
Et ]
Au début et à la fin de la chaîne. Cela en fera un tableau. Ensuite, utilisez eval()
ou un sérialiseur JSON sécurisé pour sérialiser la chaîne et en faire un type de données JavaScript réel.
Vous devez utiliser https://github.com/douglascrockford/JSON-js au lieu de eval()
. eval n’est valable que si vous effectuez des tests/débogage rapides.
Si vous utilisez jQuery, la fonction parseJSON peut être utilisée et est préférable à la fonction native eval()
de JavaScript.
Je sais que beaucoup de gens disent utiliser eval. la fonction eval () js appellera le compilateur, ce qui peut présenter une série de risques pour la sécurité. Il est préférable d'éviter son utilisation si possible. La fonction d'analyse offre une alternative plus sécurisée.