Q1: Lors de la définition des littéraux d'objet en javascript, les clés peuvent inclure des guillemets ou pas. Il n'y a pas de différence, sauf que des citations vous permettent de spécifier certaines touches qui serait la cause de l'interprète ne parviennent pas à analyser si vous avez essayé d'eux nus. Par exemple, si vous vouliez une clé qui était juste un point d'exclamation, vous auriez besoin de citations:
a = { "!": 1234 } // Valid
a = { !: 1234 } // Syntax error
Dans la plupart des cas, vous pouvez omettre les guillemets autour des touches sur l'objet de littéraux.
Q2: JSON est littéralement une représentation sous forme de chaîne. C'est juste une chaîne de caractères. Donc, considérez ceci:
var testObject = { hello: "world" }
var jSonString = JSON.stringify(testObject);
Depuis testObject
est un objet réel, vous pouvez appeler propriétés sur elle et de faire autre chose que vous pouvez faire avec les objets:
testObject.hello => "world"
D'autre part, jsonString
est juste une chaîne de caractères:
jsonString.hello => undefined
Noter une autre différence: En JSON, toutes les clés doivent être indiqués. Qui contraste avec les littéraux d'objet, d'où les guillemets peuvent généralement être omise que par mon explication en T1.
T3. Vous pouvez analyser une chaîne JSON en utilisant JSON.parse
, et c'est généralement la meilleure façon de le faire (si le navigateur ou un cadre en contient). Vous pouvez aussi simplement utiliser eval
depuis JSON est valable du code javascript, mais la première méthode est recommandée pour un certain nombre de raisons (eval a beaucoup de méchants problèmes associés).