Je suis nouveau sur les objets JSON et JavaScript.
D'abord, vous devez savoir ce qu'est JSON:
La syntaxe de JSON a été inspirée par la notation JavaScript Object Literal, mais il existe des différences entre eux.
Par exemple, dans JSON, toutes les clés doivent être entre guillemets, alors que dans les littéraux d'objet, cela n'est pas nécessaire:
// JSON:
{ "foo": "bar" }
// Object literal:
var o = { foo: "bar" };
Les guillemets sont obligatoires sur JSON car en JavaScript (plus précisément dans ECMAScript 3rd. Edition), l'utilisation de mots réservés en tant que noms de propriété n'est pas autorisée, par exemple:
var o = { if: "foo" }; // SyntaxError in ES3
L'utilisation d'un littéral de chaîne en tant que nom de propriété (en indiquant le nom de la propriété) ne pose aucun problème:
var o = { "if": "foo" };
Donc, pour "compatibilité" (et une évaluation facile peut-être?), Les guillemets sont obligatoires.
Les types de données dans JSON sont également limités aux valeurs suivantes:
string
number
object
array
true
false
null
La grammaire de Strings
change. Ils doivent obligatoirement être délimités par guillemets doubles, alors qu'en JavaScript, vous pouvez utiliser des guillemets simples ou doubles indifféremment.
// Invalid JSON:
{ "foo": 'bar' }
La grammaire JSON acceptée de Numbers
change également. En JavaScript, vous pouvez utiliser des littéraux hexadécimaux, par exemple 0xFF
, Ou (les tristement célèbres) littéraux octaux, par exemple. 010
. En JSON, vous ne pouvez utiliser que des littéraux décimaux.
// Invalid JSON:
{ "foo": 0xFF }
Il existe certaines implémentations boguées (Firefox 3.5+, IE8 +, json2.js) où les littéraux octaux sont faussement autorisés, par exemple. JSON.parse('01')
devrait produire un SyntaxError
.
JSON est une représentation sous forme de chaîne d'un objet. C'est un format de sérialisation interopérable. Ce n'est pas lié uniquement à JavaScript. Par exemple, des sérialiseurs JSON pour .NET vous permettent de sérialiser/désérialiser des objets .NET.
Il s’agit donc simplement d’un format vous permettant de convertir des objets en chaîne et retour, ce qui est pratique si vous souhaitez les transférer par le fil.
C'est très proche de la représentation d'objet javascript et si vous simplement eval()
une chaîne JSON, vous obtiendrez l'objet correspondant.
JSON est un format d'échange de données, qui ressemble à un sous-ensemble de code YAML ou JavaScript que vous pouvez exécuter et récupérer un objet. Un objet JavaScript est juste un objet en JavaScript.
JSON étant un format d’échange de données, vous pouvez échanger des données structurées sous forme textuelle. Il est assez découplé de JavaScript maintenant. Les objets JavaScript vous permettent de créer et de travailler avec des données structurées lors de l'exécution d'un programme JavaScript.