Qu’est-ce que JSON et pourquoi l’utiliser?

J’ai regardé Wikipédia et Googled et lu la documentation officielle, mais je n’ai toujours pas compris ce que c’est, et pourquoi l’utiliser.

Je construis des applications utilisant PHP, MySQL et Javascript / HTML depuis un moment, et si JSON peut faire quelque chose pour me simplifier la vie ou améliorer mon code ou améliorer mon interface utilisateur, alors j’aimerais le savoir. Quelqu’un peut-il me donner une explication succincte?

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 objects sont créés en JavaScript). Comme indiqué dans le MDN , certains JavaScript ne sont pas JSON, et certains JSON ne sont pas JavaScript.

Les réponses des services Web constituent un exemple d’utilisation. Dans les anciens jours, les services Web utilisaient XML comme format de données principal pour la transmission des données, mais depuis l’apparition de JSON ( le format JSON est spécifié dans la RFC 4627 par Douglas Crockford ), il s’agit du format préféré. poids léger

Vous pouvez trouver beaucoup plus d’informations sur le site Web officiel de JSON .

JSON est construit sur deux structures:

  • Une collection de paires nom / valeur. Dans divers langages, ceci est réalisé sous la forme d’un object, 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 langues, ceci est réalisé sous la forme d’un tableau, d’un vecteur, d’une liste ou d’une séquence.

Structure JSON

Diagramme d'objet JSON

Diagramme JSON Array

Diagramme de valeur JSON

Diagramme JSON

Diagramme de nombre 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!

Les gens supposent souvent que tous les objects Javascript sont JSON et que JSON est un object Javascript. Ceci est une erreur.

Dans Javascript, var x = {x:y} n’est pas JSON , c’est un object Javascript . Les deux ne sont pas la même chose. L’équivalent JSON (représenté dans le langage Javascript) serait var x = '{"x":"y"}' . x est un object de type ssortingng pas un object à part entière. Pour en faire un object Javascript à part entière, vous devez d’abord l’parsingr, var x = JSON.parse('{"x":"y"}'); , x est maintenant un object mais ce n’est plus du JSON.

Voir l’ object 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é dans le rappel, mais cela n’est pas suggéré car deux caractères (U + 2028 et U + 2029) sont valides dans JSON mais pas dans JavaScript (en savoir plus ici ).

Par conséquent, il faut toujours essayer d’utiliser le script de Crockford qui recherche un JSON valide avant de l’évaluer. Le lien vers l’explication du script se trouve ici et voici un lien direct vers le fichier js. De nos jours, chaque navigateur majeur a sa propre implémentation .

Exemple d’utilisation de l’parsingur syntaxique 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' }; 

L’parsingur JSON offre également une autre méthode très utile, la ssortingngify . Cette méthode accepte un object JavaScript en tant que paramètre et renvoie une chaîne au format JSON. Ceci est utile lorsque vous souhaitez renvoyer des données au serveur:

 var anObject = {name: "Andreas", surname : "Grech", age : 20}; var jsonFormat = JSON.ssortingngify(anObject); //The above method will output this: {"name":"Andreas","surname":"Grech","age":20} 

Les deux méthodes ci-dessus ( parse et ssortingngify ) 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 saisie. (Plus à ce sujet ici )

Btw, pour tous ceux qui pensent que JSON est juste pour JavaScript, consultez ce post qui explique et confirme le contraire.


Les références

  • JSON.org
  • Wikipédia
  • Json en 3 minutes (Merci mson )
  • Utiliser JSON avec Yahoo! Services Web (Merci gljivar )
  • Convertisseur JSON en CSV
  • Convertisseur JSON en CSV alternatif
  • JSON Lint (validateur JSON)

En bref – JSON est un moyen de sérialiser de telle manière qu’il devienne du code JavaScript. Lorsqu’il est exécuté (avec eval ou autre), ce code crée et renvoie un object JavaScript contenant les données que vous avez sérialisées. Ceci est disponible car JavaScript autorise la syntaxe suivante:

 var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements var MyObject = { 'SsortingngProperty' : 'Value', 'IntProperty' : 12, 'ArrayProperty' : [ 1, 2, 3], 'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' } }; // MyObject is now an object with property values set. 

Vous pouvez l’utiliser à plusieurs fins. D’une part, c’est un moyen confortable de transmettre des données de votre backend de serveur à votre code JavaScript. Ainsi, cela est souvent utilisé dans AJAX.

Vous pouvez également l’utiliser comme un mécanisme de sérialisation autonome, qui est plus simple et prend moins de place que le XML. De nombreuses bibliothèques existent qui vous permettent de sérialiser et désérialiser des objects en JSON pour différents langages de programmation.

Toutes les réponses ci-dessus se concentrent sur des spécificités. Donc, je vais essayer d’expliquer le concept afin que vous puissiez comprendre ce qui précède.

Qu’est ce que JSON? – Comment je l’ai expliqué à ma femme MC

Moi: «C’est essentiellement une façon de communiquer avec quelqu’un par écrit… mais avec des règles.

Femme: Ouais ….?

ME: Prenons l’exemple anglais: nous avons des règles – des arrêts complets, des virgules, des parenthèses, des tirets, des apostrophes, etc. et ils signifient tous des choses différentes. Fondamentalement, nous avons tous convenu de ce que signifie un arrêt complet (c.-à-d. Nous devrions faire une pause lorsque nous en lisons un).

Épouse: Dites-vous donc que JSON est une façon d’écrire l’anglais à quelqu’un, mais que les deux parties sont d’accord sur des règles?

Moi: exactement! Sauf que ces règles sont très spécifiques. En anglais prosaïque, les règles sont assez floues: comme pour le combat en cage: vous pouvez faire ce que vous voulez, à part quelques notions de base (p. Ex., Le gougeage des yeux). Par exemple, si je voulais parler de notre famille à l’IRS, je pourrais le faire en utilisant différents anglais prosaïques. Notez les différences dans chaque sens:

Moi:

• Exemple 1: Notre famille compte 4 personnes: vous, moi et 2 enfants.

• Exemple 2: Notre famille: vous, moi, kid1 et kid2.

• Exemple 3: Famille: [vous, moi, kid1, kid2]

• Exemple 4: nous avons 4 personnes dans notre famille: maman, papa, kid1 et kid2.

Femme: Ok je comprends la photo. Vous pouvez dire la même chose de différentes manières en anglais. Vous pouvez append quelques mots ici et là, quelques virgules ici et là et tout le monde comprendra encore.

Moi: exactement Sauf en JSON, les règles sont très ressortingctives. Vous ne pouvez communiquer que d’une certaine manière. Et vous devez suivre ces règles pour que quelqu’un d’autre le comprenne: crochets, virgules à certains endroits.

Femme: Pourquoi n’utilisent-ils pas simplement l’anglais à la place?

Moi: Ils le feraient, mais souvenez-vous que nous avons affaire à des ordinateurs. Un ordinateur est stupide et ne va pas pouvoir comprendre les phrases. Donc, il faut être vraiment précis quand les ordinateurs sont impliqués, sinon ils sont confus. En outre, JSON est un moyen assez efficace de communiquer, de sorte que la plupart des éléments non pertinents sont supprimés, ce qui est assez pratique. Si vous voulez communiquer notre famille, à un ordinateur, vous pouvez le faire comme suit:

 { "Family" : ["Me", "Wife", "Kid1", "Kid2"] } 

…… et c’est fondamentalement JSON. Mais rappelez-vous que vous devez respecter les règles de grammaire JSON. Si vous ne respectez pas ces règles, un ordinateur ne comprendra tout simplement pas ce que vous écrivez.

Femme: Alors, comment écris-je dans Json?

Moi: Lisez les réponses ci-dessus pour plus de détails. En bref, vous êtes obligé de communiquer des choses en utilisant des paires clé-valeur et des tableaux.

Résumé

JSON est essentiellement un moyen de communiquer des données à quelqu’un, avec des règles très très spécifiques.

En bref, il s’agit d’une notation de script permettant de transmettre des données. D’une certaine manière, une alternative à XML, supportant nativement les types de données de base, les tableaux et les tableaux associatifs (paires nom-valeur, appelées Objects car c’est ce qu’ils représentent).

La syntaxe est celle utilisée dans JavaScript et JSON signifie “JavaScript Object Notation”. Cependant, il est devenu portable et est également utilisé dans d’autres langues.

Un lien utile pour les détails est ici:

http://secretgeek.net/json_3mins.asp

Le format JSON est souvent utilisé pour la sérialisation et la transmission de données structurées via une connexion réseau. Il est principalement utilisé pour transmettre des données entre un serveur et une application Web, ce qui constitue une alternative à XML.

JSON est la notation d’object JavaScript. C’est un moyen beaucoup plus compact de transmettre des ensembles de données à travers des connexions réseau par rapport à XML. Je suggère que JSON soit utilisé dans toutes les applications de type AJAX où XML serait autrement l’option “recommandée”. La verbosité de XML appenda au temps de téléchargement et augmentera la consommation de bande passante ($$$). Vous pouvez réaliser le même effet avec JSON et son balisage est presque exclusivement dédié aux données elles-mêmes et non à la structure sous-jacente.

La réponse courte est la suivante: si vous utilisez AJAX pour effectuer des requêtes de données, vous pouvez facilement envoyer et renvoyer des objects en tant que chaînes JSON. Les extensions disponibles pour le support Javascript toJSON () font appel à tous les types de javascript pour envoyer des données au serveur dans une requête AJAX. Les réponses AJAX peuvent renvoyer des objects sous forme de chaînes JSON qui peuvent être converties en objects Javascript par un simple appel eval, par exemple si la fonction AJAX someAjaxFunctionCallReturningJson est retournée

 "{ \"FirstName\" : \"Fred\", \"LastName\" : \"Flintstone\" }" 

vous pourriez écrire en Javascript

 var obj = eval("(" + someAjaxFunctionCallReturningJson().value + ")"); alert(obj.FirstName); alert(obj.LastName); 

JSON peut également être utilisé pour les charges de service Web et autres, mais il est très pratique pour les résultats AJAX.

Qu’est ce que JSON?

JavaScript Object Notation (JSON) est un format d’échange de données léger inspiré des littéraux d’object de JavaScript.

Les valeurs JSON peuvent consister en:

objects (collections de paires nom-valeur) tableaux (listes de valeurs ordonnées) chaînes (entre guillemets) nombres true, false ou null

JSON est indépendant de la langue.

JSON avec PHP?

Après PHP version 5.2.0, l’extension JSON est décodée et encode les fonctionnalités par défaut.

Json_encode – renvoie la représentation JSON des valeurs Json_decode – décode la chaîne JSON Json_last_error – Retourne la dernière erreur.

Syntaxe et règles JSON?

La syntaxe JSON est dérivée de la syntaxe de notation d’object JavaScript:

Les données sont en paires nom / valeur Les données sont séparées par des virgules Les accolades contiennent des objects Les crochets contiennent des tableaux

http://www.codingslover.com/2015/05/json-with-php-javascript-and-ajax.html

Exemple JSON

J’aime JSON principalement parce que c’est tellement laconique . Pour le contenu Web qui peut être compressé, ce n’est pas nécessairement un gros problème (d’où pourquoi x html est si populaire). Mais il y a des occasions où cela peut être bénéfique.

Par exemple, pour un projet, je transmettais des informations qui devaient être sérialisées et transmises via XMPP . Comme la plupart des serveurs limitent la quantité de données que vous pouvez transmettre dans un seul message, j’ai trouvé utile d’utiliser JSON sur l’alternative évidente, XML.

En prime, si vous connaissez bien Python ou Javascript, vous connaissez déjà JSON et pouvez l’interpréter sans trop vous entraîner.

La différence entre JSON et la syntaxe conventionnelle serait la suivante (en Javascript)

Conventionnel

  function Employee(name, Id, Phone, email){ this.name = name; this.Id = Id; this.Phone = Phone; this.email = email; } //access or call it as var Emp = new Employee("mike","123","9373849784","mike.Anderson@office.com"); 

Avec JSON

si nous utilisons JSON, nous pouvons définir de manière différente

  function Employee(args){ this.name = args.name; this.Id = args.Id; this.Phone = args.Phone; this.email = args.email; } //now access this as... var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'}); 

La chose importante à retenir est que, si nous devons construire la classe “Employee” ou modale avec 100 éléments sans méthode JSON, nous devons tout parsingr lors de la création de la classe. Mais avec JSON, nous pouvons définir les objects en ligne uniquement lorsqu’un nouvel object pour la classe est défini.

donc cette ligne ci-dessous est la façon de faire les choses avec JSON (juste un moyen simple de définir les choses)

  var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'}); 

Nous devons faire un projet à l’université et nous avons rencontré un très gros problème, il s’appelle Same Origin Policy. Entre autres choses, votre méthode XMLHttpRequest de Javascript ne peut pas envoyer de requêtes à des domaines autres que le domaine sur lequel se trouve votre site.

Par exemple, vous ne pouvez pas demander à http://www.otherexample.com si votre site est sur http://www.example.com. JSONRequest le permet, mais vous obtiendrez un résultat au format JSON si ce site le permet (par exemple, il possède un service Web qui renvoie des messages en JSON). C’est un problème pour lequel vous pourriez peut-être utiliser JSON.

Voici quelque chose de pratique: Yahoo JSON

C’est très simple. JSON signifie Java Script Object Notation. Considérez-le comme une alternative à l’utilisation de XML pour transférer des données entre des composants logiciels.

Par exemple, j’ai récemment écrit un tas de services Web qui ont renvoyé JSON, et certains développeurs Javascript ont ensuite écrit le code qui appelait les services et consommaient les informations renvoyées dans ce format.

JSON (notation d’object Javascript) est un format de données léger pour l’échange / transfert de données. Sa paire de valeurs clés comme le JavaScript est. Pour l’API REST, elle est largement utilisée pour le transfert de données du serveur vers le client. De nos jours, de nombreux sites de médias sociaux l’utilisent. Bien que je ne considère pas cela aussi robuste que XML en ce qui concerne les types de données. XML a des types de données très riches et XSD. JSON manque un peu de ça.

Pour la même quantité de données de chaîne, JSON sera plus léger comparé à XML car XML a tout ce qui ouvre et ferme les balises, etc …

Parfois, la technicité est donnée là où aucune n’est requirejse, et bien que les réponses les mieux votées soient techniques et spécifiques, je ne pense pas qu’elles soient plus faciles à comprendre ou plus succinctes, comme on peut en trouver sur Wikipedia ou dans documentation officielle.

La façon dont j’aime à penser à JSON est exactement ce qu’il est: une langue dans un monde de langues différentes. Cependant, la différence entre JSON et les autres langages est que “tout le monde” “parle” JSON, avec leur “langue maternelle”.

En utilisant un exemple du monde réel, supposons que nous avons trois personnes. Une personne parle Igbo comme langue maternelle. La deuxième personne aimerait interagir avec la première personne, cependant, la première personne parle le yoruba comme première langue.

Que pouvons-nous faire?

Heureusement, la troisième personne dans notre exemple a grandi en parlant anglais, mais il se trouve que les deux langues parlées sont l’ibiot et le yorouba et peuvent donc servir d’intermédiaire entre les deux premières personnes.

Dans le monde de la programmation, la première “personne” est Python, la deuxième “personne” est Ruby et la troisième “personne” est JSON, qui arrive à “traduire” Ruby en Python et vice versa! Maintenant, évidemment, cette analogie n’est pas parfaite, mais en tant que personne bilingue, je pense que c’est un moyen facile de voir comment JSON interagit avec d’autres langages de programmation.

Essayez le code suivant pour parsingr votre réponse php json: read.php

   

server.php