web-dev-qa-db-fra.com

Comment affecter une chaîne JSON à une variable Javascript?

Quelle est la bonne façon d'attribuer une chaîne JSON à une variable? Je continue à avoir des erreurs EOF.

var somejson = "{
    "key1": "val1",
    "key2": "value2"
}";

http://jsfiddle.net/x7rwq5zm/1/

7
4thSpace

Vous n'avez pas échappé correctement. Vous vous assurez que vous faites:

var somejson = "{ \"key1\": \"val1\",\"key2\": \"value2\"}";

Le moyen le plus simple serait de simplement convertir un objet existant en chaîne en utilisant JSON.stringify(). Je le recommanderais autant que possible car il y a très peu de chance de faire une faute de frappe.

var obj = {
    key1: "val1",
    key2: "value2"
};

var json = JSON.stringify(obj);
13
Carl K

Si vous voulez la chaîne, pas l'objet (notez le ' au lieu de ")

var somejson =  '{ "key1": "val1", "key2": "value2" }';

Si vous voulez une chaîne déclarée avec plusieurs lignes, pas l'objet (newline a du sens en Javascript)

var somejson =  '{'
 + '"key1": "val1",' 
 + '"key2": "value2"' 
 + '}';

Si vous voulez l'objet, pas la chaîne

var somejson =  { "key1": "val1", "key2": "value2" };

Si vous voulez une chaîne générique

var somejson =  JSON.stringify(someobject);
6
Dylan Watt

Je pense que vous devriez utiliser la fonction JSON.stringify. Voir les réponses ici - Convertir un objet JS en chaîne JSON

var somejson = {
    "key1": "val1",
    "key2": "value2"
};
somjson = JSON.stringify(somejson);
0
Ankur Anand