JSON (JavaScript Object Notation) est un format léger utilisé pour l'échange de données. Il est basé sur un sous-ensemble du langage JavaScript (la façon dont les objets sont construits en JavaScript). Comme indiqué dans le MDN certains JavaScript ne sont pas JSON, et certains JSON ne sont pas JavaScript.
Les réponses aux services web en sont un exemple. Auparavant, les services web utilisaient XML comme principal format de données pour renvoyer les données, mais depuis l'apparition de JSON ( Le format JSON est spécifié dans RFC 4627 par Douglas Crockford ), il a été le format préféré parce qu'il est beaucoup plus facile à utiliser. léger
Vous pouvez trouver beaucoup plus d'informations sur le site officiel de la Commission européenne. Site web JSON .
JSON est construit sur deux structures :
- Une collection de paires nom/valeur. Dans divers langages, il s'agit d'un objet, d'un enregistrement, d'une structure, d'un dictionnaire, d'une table de hachage, d'une liste de clés ou d'un tableau associatif.
- Une liste ordonnée de valeurs. Dans la plupart des langages, il s'agit d'un tableau, d'un vecteur, d'une liste ou d'une séquence.
Structure JSON
Voici un exemple de données JSON :
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
"212 555-1234",
"646 555-4567"
]
}
JSON en JavaScript
JSON (en Javascript) est une chaîne de caractères !
Les gens supposent souvent que tous les objets Javascript sont JSON et que JSON est un objet Javascript. C'est faux.
En Javascript var x = {x:y}
est pas JSON c'est un Objet Javascript . Les deux ne sont pas la même chose. L'équivalent JSON (représenté en langage Javascript) serait var x = '{"x":"y"}'
. x
est un objet de type chaîne de caractères pas un objet à part entière. Pour le transformer en un objet Javascript à part entière, vous devez d'abord l'analyser, var x = JSON.parse('{"x":"y"}');
, x
est maintenant un objet mais ce n'est plus JSON.
Voir Objet Javascript Vs JSON
Lorsque vous travaillez avec JSON et JavaScript, vous pouvez être tenté d'utiliser la fonction eval
pour évaluer le résultat renvoyé par la fonction de rappel, mais cela n'est pas conseillé car il existe deux caractères (U+2028 & U+2029) valides dans JSON mais pas dans JavaScript (lire la suite de cet article). aquí ).
Par conséquent, il faut toujours essayer d'utiliser le script de Crockford qui vérifie si le JSON est valide avant de l'évaluer. Le lien vers l'explication du script se trouve à l'adresse suivante aquí et voici un lien direct au fichier js. Tous les principaux navigateurs actuels ont sa propre mise en œuvre pour ça.
Exemple d'utilisation du parseur JSON (avec le json de l'extrait de code ci-dessus) :
//The callback function that will be executed once data is received from the server
var callback = function (result) {
var johnny = JSON.parse(result);
//Now, the variable 'johnny' is an object that contains all of the properties
//from the above code snippet (the json example)
alert(johnny.firstName + ' ' + johnny.lastName); //Will alert 'John Smith'
};
Le parseur JSON offre également une autre méthode très utile, stringify
. Cette méthode accepte un objet JavaScript comme paramètre et renvoie une chaîne au format JSON. Cette méthode est utile lorsque vous souhaitez renvoyer les données au serveur :
var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
//The above method will output this: {"name":"Andreas","surname":"Grech","age":20}
Les deux méthodes ci-dessus ( parse
y stringify
) prennent également un second paramètre, qui est une fonction qui sera appelée pour chaque clé et valeur à chaque niveau du résultat final, et chaque valeur sera remplacée par le résultat de votre fonction entrée. (Pour en savoir plus aquí )
Entre-temps, pour tous ceux qui pensent que JSON est réservé à JavaScript, jetez un œil à ce poste qui explique et confirme le contraire.
Références
2 votes
JSON est un sous-ensemble de YAML. yaml.org
15 votes
copterlabs.com/blog/json-ce-qui-est-comment-fonctionne-comment-l'utiliser Voici un bel exemple d'utilisation directe.
1 votes
Lisez également ce qui concerne I-JSON : tbray.org/ongoing/When/201x/2015/03/23/i-json
1 votes
+Pas vraiment - c'est sa propre façon d'exprimer les données, et c'est similaire à JSON juste parce qu'ils expriment tous les deux des objets comme des chaînes de caractères (de la même façon que XML ou plists ou beaucoup d'autres), mais JSON est mieux pour l'écriture par la machine et YAML pour l'écriture humaine.