web-dev-qa-db-fra.com

Chaîne JSON dans un JSON

Je veux créer une chaîne JSON dans une requête JSON. Voici mon code,

Violon

[~ # ~] js [~ # ~]

var x = {
    a: 1,
    b: 'a sample text',
};

var request = {
    t: JSON.stringify(x),
    c: 2,
    r: 'some text'
};

console.log(request);

Quelqu'un peut-il m'aider à échapper aux doubles guillemets?

Console

Object {
  t: "{"a":1,"b":"a sample text"}", //This creates a problem, double quotes inside double quotes.
  c: 2, 
  r: "some text"
}

Merci d'avance.

12
moustacheman

C'est juste la façon dont la console du navigateur vous montre la valeur d'une chaîne, en mettant des guillemets doubles pour la sortie. C'est parfaitement normal et rien n'est cassé.

Vous pouvez le tester en transformant votre chaîne JSON en objet et en utilisant une propriété.

console.log( JSON.parse(request.t).b ); // a sample text
6
MrCode

Il n'y a pas de problème. C'est juste ton console.log qui montre toutes les chaînes en délimitant simplement avec ".

Comme vous le dites, cet objet request est utilisé dans une demande JSON, où il sera JSON.stringifyed une autre fois, avec le résultat valide

{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}
6
Bergi