Objet JSON avec ou sans devis
Je suis en train d'apprendre JSON, j'ai appris que tout objet javascript avec la clé dans les guillemets sont considérées comme objet JSON.
Et j'ai construit cet objet
var jstr1 = {"mykey": "my value"};
Mais quand j'essaie de l'analyser à l'aide de JSON.parse(jstr1), j'ai obtenu l'erreur suivante. voir la capture d'écran.
Mais quand j'essaie d'analyser ce
var jstr = '{"mykey": "my value"}';,
j'ai eu de la réussite, voir la capture d'écran. j'ai eu le confondre. Merci de m'expliquer pourquoi cela se produit. quelle est la différence entre les deux formes.
Et quand je suis JSON comme une réponse de tous les services, la façon dont il devrait ressembler, si elle sera en forme de jstr
ou jstr1
merci d'avance pour toute aide.
source d'informationauteur Mohamed Hussain
Vous devez vous connecter pour publier un commentaire.
De la création d'un Javascript
Object
. Si vous voulez un JSON-chaîne à partir d'elle, l'utiliserJSON.stringify
.Donc
Basée sur les commentaires:
Il n'y a pas une telle chose comme un JSON Objet. Il y a JSON-chaînes, qui peuvent être
parsed
à des Objets Javascript. Les Objets Javascript peut êtrestringified
de chaînes JSON. Dans un JSON-clés de chaîne et les valeurs sont cotées. Donc le résultat de ce qui précède est un chaîne contenant'{"mykey":"my value"}'
.D'essayer d'analyser
myObjJSON
dans votre navigateur de la console (à l'aide de:JSON.parse(myObjJSON)
) et vous obtenez:Object {mykey: "my value"}
.Ce code
crée un objet JavaScript à l'aide de la Objet Littéral Notation.
Pour la différence entre le Objet Littéral Notation et JSON (JON est court pour JavaScript object notation), voir ici: Quelle est la différence entre JSON et Littéral d'Objet de la Notation?
Il fait logiquement pas de sens à transmettre ces données à
JSON.parse()
.La différence pour votre première variante (
var jstr = '{"mykey": "my value"}';
), c'est qu'il crée une "brute" de la chaîne. Vous ne pouvez pas accéder à quoi que ce soit sur cette chaîne, sauf les premières séquences de caractères. À l'aide deJSON.parse()
nous donne une forme utilisable (objet) créé à partir de la chaîne.Cela vient de l'automatique de la chaîne de conversion de
jstr1
:Vous avez quelques missunnderstanting pour
JSON.parse
c'est pourquoi, lorsque vous avez exécuté le suivant
cela a fonctionné, car il attend une chaîne json
mais lors de l'exécution de
elle na pas parce que l'objet a été coverted à chaîne qui est
et voici l'erreur où "[object object]" n'est pas valide la syntaxe à la lettre
o
JSON.parse() accepte une chaîne de caractères et les convertit pour objet JSON, il ne prend pas un objet javascript en tant que paramètre. Reportez-vous JSON.parse() Elle peut vous donner les résultats comme suit
et ne sais que Si la chaîne à analyser n'est pas valide JSON, SyntaxError exception est levée. donc, c'est comment vous obtenez une erreur de syntaxe sur jstr1 (Ce n'est pas une chaîne JSON)
Comment à ce sujet:
ensuite, vous recevrez:
{ecomm_pagetype:"panier",ecomm_prodid:"123",ecomm_totalvalue:"à 19,99"}