web-dev-qa-db-fra.com

Convertir une chaîne JSON en un tableau d'objets JSON en Javascript

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

55
Sobis

Utilisation de jQuery:

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');

jsonObj est votre objet JSON.

88
darioo

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..

27
AnarchistGeek

Aussi simple que cela.

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
 dataObj = JSON.parse(str);
21
Gyanesh Gouraw

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.

6
Luca Matteis

Si vous utilisez jQuery, la fonction parseJSON peut être utilisée et est préférable à la fonction native eval() de JavaScript.

4
greenimpala

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.

1
Steve