langage json. JSON : les bases
Vous avez sûrement déjà entendu parler de JSON. Qu'est-ce que c'est? Que peut-il faire et comment l'utiliser ?
Dans ce tutoriel, nous aborderons les bases de JSON et aborderons les points suivants :
- Qu’est-ce que JSON ?
- A quoi sert JSON ?
- Comment créer une chaîne JSON ?
- Un exemple simple de chaîne JSON.
- Comparons JSON et XML.
- Comment travailler avec JSON en JavaScript et PHP ?
JSON est un moyen simple, basé sur du texte, de stocker et de transmettre des données structurées. Avec une syntaxe simple, vous pouvez facilement stocker n'importe quoi, depuis un simple nombre jusqu'aux chaînes, tableaux et objets, en texte brut. Vous pouvez également lier des tableaux et des objets pour créer des structures de données complexes.
Une fois la chaîne JSON créée, il est facile de l'envoyer vers une autre application ou vers un autre emplacement du réseau car il s'agit de texte brut.
JSON présente les avantages suivants :
- C'est compact.
- Ses phrases sont faciles à lire et à composer aussi bien par les humains que par les ordinateurs.
- Il peut être facilement converti en structure de données pour la plupart des langages de programmation (nombres, chaînes, booléens, tableaux, etc.)
- De nombreux langages de programmation disposent de fonctions et de bibliothèques pour lire et créer des structures JSON.
Le nom JSON signifie JavaScript Object Notation. Comme son nom l'indique, il est basé sur une manière de définir des objets (un peu comme la création de tableaux associatifs dans d'autres langages) et des tableaux.
A quoi sert JSON ?L'utilisation la plus courante de JSON consiste à envoyer des données du serveur au navigateur. Généralement, les données JSON sont fournies à l'aide d'AJAX, ce qui permet au navigateur et au serveur de communiquer sans avoir à recharger la page.
Vous pouvez également utiliser JSON pour envoyer des données du navigateur au serveur en passant une chaîne JSON comme paramètre aux requêtes GET ou POST. Mais cette méthode est moins courante, car le transfert de données via des requêtes AJAX peut être simplifié. Par exemple, l'ID du produit peut être inclus dans l'URL dans le cadre d'une requête GET.
La bibliothèque jQuery dispose de plusieurs méthodes, telles que getJSON() et parseJSON(), qui facilitent la récupération de données à l'aide de JSON via des requêtes AJAX.
Comment créer une chaîne JSON ?Il existe quelques règles de base pour créer une chaîne JSON :
- La chaîne JSON contient soit un tableau de valeurs, soit un objet (un tableau associatif de paires nom/valeur).
- Tableau est placé entre crochets ([ et ]) et contient une liste de valeurs séparées par des virgules.
- Un objet est entouré d'accolades (( et )) et contient une liste de paires nom/valeur séparées par des virgules.
- paire nom/valeur se compose du nom du champ entre guillemets doubles, suivi de deux points (:) et de la valeur du champ.
- Signification dans un tableau ou un objet, il peut y avoir :
- Nombre (entier ou virgule flottante)
- Chaîne (entre guillemets doubles)
- Valeur booléenne (vrai ou faux)
- Un autre tableau (mis entre crochets)
- Un autre objet (entouré d'accolades)
- valeur nulle
Pour inclure des guillemets doubles dans une chaîne, vous devez utiliser une barre oblique inverse : \" . Comme avec de nombreux langages de programmation, vous pouvez placer des caractères de contrôle et des codes hexadécimaux dans une chaîne en les faisant précéder d'une barre oblique inverse. Consultez le site Web JSON pour plus de détails.
Exemple de chaîne JSON simpleCi-dessous un exemple de commande au format JSON :
( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email protégé]", "contents": [ ( "productID": 34, "productName": "Super produit", "quantity": 1 ), ( "productID": 56, "productName": "Produit miracle", "quantity": 3 ) ], "orderCompleted": vrai )
Regardons la ligne en détail :
- Nous créons un objet en utilisant des accolades (( et )).
- L'objet a plusieurs paires nom/valeur : "orderID": 12345 Une propriété avec le nom "orderId" et une valeur entière 12345 "shopperName": "Vanya Ivanov" une propriété avec le nom "shopperName" et la valeur de chaîne "Vanya Ivanov " "e-mail de l'acheteur": " [email protégé]" Une propriété nommée "shopperEmail" avec une valeur de chaîne " [email protégé]" "contents": [ ... ] Une propriété nommée "contents" dont la valeur est un tableau "orderCompleted": true Une propriété nommée "orderCompleted" et la valeur booléenne true
- Il y a 2 objets dans le tableau « contenu » représentant des éléments individuels dans la commande. Chaque objet contient 3 propriétés : productID , productName etQuantity .
À propos, puisque JSON est basé sur la déclaration d'objets JavaScript, vous pouvez rapidement et facilement faire de la chaîne JSON ci-dessus un objet JavaScript :
var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email protégé]", "contents": [ ( "productID": 34, "productName": "Super produit", "quantity": 1 ), ( "productID": 56, "productName": "Produit miracle", "quantity": 3 ) ], "orderCompleted": true );
Comparaison de JSON et XMLÀ bien des égards, vous pouvez considérer JSON comme une alternative au XML, du moins dans le domaine des applications Web. Le concept d'AJAX reposait à l'origine sur l'utilisation de XML pour transférer des données entre le serveur et le navigateur. Mais ces dernières années, JSON est devenu de plus en plus populaire pour le transport de données AJAX.
Si XML est une technologie éprouvée utilisée dans un bon nombre d'applications, JSON présente l'avantage d'être un format de données plus compact et plus facile à reconnaître.
Voici à quoi ressemblerait l’exemple d’objet XML ci-dessus :
N° de commande 12345 Nom du client Vanya Ivanov E-mail du client [email protégé] contenu productID 34 productName Super quantité de produit 1 productID 56 productName Produit miracle quantité 3 orderCompleted true
La version XML est nettement plus grande. En réalité, il comporte 1 128 caractères, alors que la version JSON ne comporte que 323 caractères. La version XML est également assez difficile à comprendre.
Bien sûr, c’est un exemple radical. Et il est possible de créer un enregistrement XML plus compact. Mais même cela sera nettement plus long que l’équivalent JSON.
Travailler avec une chaîne JSON en JavaScriptJSON a un format simple, mais créer manuellement une chaîne JSON est assez fastidieux. De plus, vous devez souvent prendre une chaîne JSON et convertir son contenu en une variable pouvant être utilisée dans le code.
La plupart des langages de programmation disposent d'outils permettant de convertir facilement des variables en chaînes JSON et vice versa.
Créer une chaîne JSON à partir d'une variableJavaScript possède une méthode JSON.stringify() intégrée qui prend une variable et renvoie une chaîne JSON représentant son contenu. Par exemple, créons un objet JavaScript contenant les informations de commande de notre exemple, puis créons une chaîne JSON à partir de celui-ci :
var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email protégé]", "contents": [ ( "productID": 34, "productName": "Super produit", "quantity": 1 ), ( "productID": 56, "productName": "Produit miracle", "quantity": 3 ) ], "orderCompleted": true ); alerte (JSON.stringify(cart));
Ce code produira :
Notez que la méthode JSON.stringify() renvoie une chaîne JSON sans espaces. Il est plus difficile à lire, mais il est plus compact pour la transmission sur le réseau.
Il existe plusieurs façons d'analyser une chaîne JSON en JavaScript, mais la plus sûre et la plus fiable consiste à utiliser la méthode JSON.parse() intégrée. Il reçoit une chaîne JSON et renvoie un objet ou un tableau JavaScript contenant les données. Par exemple:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [email protégé]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "Super produit", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": "Biens miracles", \"quantity": 3\ ) \ ], \"orderCompleted": true \ ) \"; var panier = JSON.parse(jsonString); alerte (cart.shopperEmail); alerte(cart.contents.productName);
Nous avons créé une variable jsonString qui contient la chaîne JSON de notre exemple de commande. Nous transmettons ensuite cette chaîne à la méthode JSON.parse(), qui crée un objet contenant les données JSON et le stocke dans la variable cart. Il ne reste plus qu'à vérifier en affichant les propriétés de l'objet shopperEmail et productName du tableau contents.
En conséquence, nous obtiendrons le résultat suivant :
Dans une application réelle, votre code JavaScript recevrait la commande sous forme de chaîne JSON dans une réponse AJAX du script serveur, transmettrait la chaîne à la méthode JSON.parse(), puis utiliserait les données pour l'afficher sur la page de l'utilisateur.
JSON.stringify() et JSON.parse() ont d'autres fonctionnalités, telles que l'utilisation de fonctions de rappel pour convertir certaines données de manière personnalisée. De telles options sont très utiles pour convertir diverses données en objets JavaScript appropriés.
Travailler avec une chaîne JSON en PHPPHP, comme JavaScript, possède des fonctions intégrées pour travailler avec des chaînes JSON.
Créer une chaîne JSON à partir d'une variable PHPLa fonction json_encode() prend une variable PHP et renvoie une chaîne JSON représentant le contenu de la variable. Voici notre exemple de commande, écrit en PHP :
Ce code renvoie exactement la même chaîne JSON que dans l'exemple JavaScript :
("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [email protégé]","contents":[("productID":34,"productName":"Super produit","quantity":1),("productID":56,"productName":"Produit miracle","quantity": 3)],"commandeCompleted":true)
Dans une application réelle, votre script PHP enverra cette chaîne JSON dans le cadre d'une réponse AJAX au navigateur, où le code JavaScript, à l'aide de la méthode JSON.parse(), l'analysera dans une variable pour l'afficher sur la page de l'utilisateur. .
Vous pouvez transmettre divers indicateurs comme deuxième argument à la fonction json_encode(). Avec leur aide, vous pouvez modifier les principes d'encodage du contenu des variables dans une chaîne JSON.
Créer une variable à partir d'une chaîne JSONPour convertir une chaîne JSON en variable PHP, utilisez la méthode json_decode(). Remplaçons notre exemple pour JavaScript par la méthode JSON.parse() par du code PHP :
Comme avec JavaScript, ce code produira :
[email protégé] Produit miracle
Par défaut, la fonction json_decode() renvoie les objets JSON sous forme d'objets PHP. Il existe des objets PHP génériques de la classe stdClass. C'est pourquoi nous utilisons -> pour accéder aux propriétés de l'objet dans l'exemple ci-dessus.
Si vous avez besoin d'un objet JSON comme tableau PHP associé, vous devez transmettre true comme deuxième argument à la fonction json_decode(). Par exemple:
$cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";
Ce code produira le même résultat :
[email protégé] Produit miracle
Vous pouvez également transmettre d'autres arguments à la fonction json_decode() pour spécifier la profondeur de récursion et comment gérer les grands entiers.
ConclusionBien que JSON soit facile à comprendre et à utiliser, il s’agit d’un outil très utile et flexible pour transférer des données entre applications et ordinateurs, notamment lors de l’utilisation d’AJAX. Si vous envisagez de développer une application AJAX, alors nul doute que JSON deviendra un outil indispensable dans votre atelier.
Qu'est-ce que JSON et que peut-il faire ? Dans cet article, vous apprendrez à utiliser JSON pour travailler facilement avec des données. Nous verrons également comment travailler avec JSON en utilisant PHP et JavaScript.
Si vous avez développé des sites Web ou des applications Web en général, il est probable que vous ayez entendu parler de JSON, du moins en passant. Mais que signifie exactement JSON ? Que peut faire ce format de données et comment peut-il être utilisé ?
Dans cet article, nous apprendrons les bases du travail avec le format json. Nous suivrons les sujets suivants :
- Qu'est-ce que le format JSON ?
- Comment créer des chaînes JSON ?
- Exemple simple de données JSON
- Comparaison de JSON avec XML
Commençons!
Qu'est-ce que le format JSON ?JSON est un moyen simple, basé sur du texte, de stocker et de transmettre des données structurées. Avec une syntaxe simple, vous pouvez facilement stocker à la fois des nombres et des chaînes simples, ainsi que des tableaux et des objets, en n'utilisant rien d'autre que du texte. Vous pouvez également lier des objets et des tableaux, ce qui vous permet de créer des structures de données complexes.
Une fois la chaîne JSON créée, elle peut être facilement envoyée à n’importe quelle application ou ordinateur puisqu’il ne s’agit que de texte.
JSON présente de nombreux avantages :
- C'est compact
- Il est lisible par l’homme et facile à lire par les ordinateurs
- Il peut être facilement converti en formats logiciels : valeurs numériques, chaînes, format booléen, valeur nulle, tableaux et tableaux associatifs.
- Presque tous les langages de programmation ont des fonctions qui vous permettent de lire et de créer le format de données JSON.
Littéralement, l'abréviation JSON signifie JavaScript Object Notation. Comme décrit précédemment, ce format est basé sur la création d'objets, quelque chose de similaire aux tableaux associatifs dans d'autres langages de programmation.
À quelles fins JSON est-il utilisé ?Surtout, json est utilisé pour échanger des données entre javascript et côté serveur (php). En d’autres termes, pour la technologie ajax. Ceci est très pratique lorsque vous transmettez plusieurs variables ou des tableaux de données entiers.
Voici à quoi cela ressemble dans un exemple :
C'est ainsi que l'image est agrandie sans recharger la page dans le navigateur. Ceci est très pratique lorsque nous devons recevoir des données partielles ou transférer une petite quantité d'informations vers le serveur.
Le jQuery préféré de tous possède les fonctions getJSON() et parseJSON(), qui vous aident à travailler avec le format via des requêtes ajax.
Comment créer des chaînes JSON ?Vous trouverez ci-dessous les règles de base pour créer des chaînes JSON :
- La chaîne JSON contient à la fois un tableau de valeurs et un objet (un tableau associatif avec des paires nom/valeur).
- Le tableau doit être entouré de crochets [ et ] et peut contenir une liste de valeurs séparées par une virgule.
- Les objets sont entourés de bras bouclés ( et ) et contiennent également des paires nom/valeur séparées par des virgules.
- Les paires nom/valeur sont constituées du nom du champ (entre guillemets) suivi de deux points (:) suivi de la valeur du champ.
- Les valeurs d'un tableau ou d'un objet peuvent être :
- Numérique (fraction entière ou pointée)
- Chaînes (entourées de guillemets doubles)
- Booléen (vrai ou faux)
- Autres tableaux (entourés de crochets [ et ])
- Autres objets (entourés de bras bouclés ( et ))
- Valeur nulle
Important! Si vous utilisez des guillemets doubles dans les valeurs, échappez-les avec une barre oblique inverse : \". Vous pouvez également utiliser des caractères codés en hexadécimal, comme vous le faites dans d'autres langages de programmation.
Exemple simple de données JSONL'exemple suivant montre comment enregistrer des données dans le « panier » d'une boutique en ligne en utilisant le format JSON :
("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protégé]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "orderCompleted": vrai )
Décomposons ces données pièce par pièce :
Enfin, puisque JSON est identique aux objets en JavaScript, vous pouvez facilement prendre cet exemple et créer un objet JavaScript à partir de celui-ci :
var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protégé]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "orderCompleted": true );
Comparaison de JSON avec XMLDans la plupart des cas, vous considérerez JSON comme une alternative au XML, du moins dans les applications Web. Le concept Ajax utilise à l'origine XML pour échanger des données entre le serveur et le navigateur, mais ces dernières années, JSON est devenu plus populaire pour la transmission de données ajax.
Bien que XML soit une technologie éprouvée et utilisée par de nombreuses applications, les avantages du format JSON sont qu'il est plus compact et plus facile à écrire et à lire.
Voici l'exemple JSON ci-dessus, réécrit uniquement au format XML :
numéro de commande 12345 nom du client John Smith email du client [email protégé] contenu productID 34 productName SuperWidget quantité 1 productID 56 productName WonderWidget quantité 3 orderCompleted true
Comme vous pouvez le constater, il est plusieurs fois plus long que JSON. En fait, cet exemple comporte 1 128 caractères, alors que la version JSON ne comporte que 323 caractères. La version XML est également plus difficile à lire.
Bien entendu, on ne peut pas juger sur un seul exemple, mais même de petites quantités d'informations occupent moins de place au format JSON qu'au format XML.
Comment travailler avec JSON via PHP et JS ?Venons-en maintenant à la partie la plus intéressante : le côté pratique du format JSON. Tout d'abord, rendons hommage à JavaScript, puis nous verrons comment manipuler JSON via PHP.
Création et lecture du format JSON à l'aide de JavaScriptMême si le format JSON est simple, il est difficile de l'écrire manuellement lors du développement d'applications Web. De plus, vous devez souvent convertir des chaînes JSON en variables puis les utiliser dans votre code.
Heureusement, de nombreux langages de programmation fournissent des outils pour travailler avec les chaînes JSON. Dont l'idée principale :
Pour créer des chaînes JSON, vous commencez avec des variables contenant certaines valeurs, puis vous les transmettez via une fonction qui transforme les données en chaîne JSON.
En lisant des chaînes JSON, vous commencez avec une chaîne JSON contenant certaines données, passez la chaîne via une fonction qui crée des variables contenant les données.
Voyons comment cela se fait en JavaScript.
Créer une chaîne JSON à partir d'une variable JavaScriptJavaScript possède une méthode intégrée, JSON.stringify(), qui prend une variable javascript et renvoie une chaîne json représentant le contenu de la variable. Par exemple, utilisons un objet créé précédemment et convertissons-le en chaîne JSON.
var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protégé]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "orderCompleted": true ); alerte (JSON.stringify(cart));
Voici ce qui apparaîtra à l'écran :
("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protégé]", "contents":[("productID":34,"productName":"SuperWidget","quantity":1), ("productID":56,"productName":"WonderWidget","quantity":3) ], "orderCompleted": vrai)
Notez que JSON.stringify() génère des chaînes JSON sans espaces. C'est difficile à lire, mais c'est plus compact, ce qui est important lors de l'envoi de données.
Création d'une variable JavaScript à partir d'une chaîne JSONIl existe plusieurs façons d'analyser les chaînes JSON, la plus acceptable et la plus sûre consiste à utiliser la méthode JSON.parse(). Il prend une chaîne JSON et renvoie un objet ou un tableau JavaScript contenant les données JSON. Voici un exemple :
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [email protégé]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "SuperWidget", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": " WonderWidget", \"quantity": 3\ ) \ ], \"orderCompleted": true \ ) \"; var panier = JSON.parse(jsonString); alerte (cart.shopperEmail); alerte(cart.contents.productName);
Ici, nous avons créé une variable, jsonString, qui contient la chaîne JSON des exemples fournis précédemment. Ensuite, nous avons transmis cette chaîne via JSON.parse() pour créer un objet contenant des données JSON, qui ont été stockées dans la variable cart. Enfin, nous vérifions la disponibilité des données et affichons certaines informations à l'aide de la fenêtre modale d'alerte.
Les informations suivantes seront affichées :
Dans une vraie application Web, votre code JavaScript doit recevoir une chaîne JSON en réponse du serveur (après l'envoi d'une requête AJAX), puis analyser la chaîne et afficher le contenu du panier à l'utilisateur.
Création et lecture du format JSON avec PHPPHP, comme JavaScript, possède des fonctions qui permettent de convertir des variables au format JSON, et vice versa. Regardons-les.
Créer une chaîne JSON à partir d'une variable PHPJson_encode() prend une variable PHP et renvoie une chaîne JSON représentant les données de la variable. Voici notre exemple de « panier » écrit en PHP :
Ce code produit exactement le même résultat que l'exemple JavaScript : une chaîne JSON valide représentant le contenu des variables :
("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protégé]","contents":[("productID":34,"productName":"SuperWidget","quantity":1),("productID":56,"productName":"WonderWidget","quantity":3) ], "commandeCompleted": vrai)
En réalité, votre script PHP doit envoyer une chaîne JSON en réponse à une requête AJAX, où JavaScript utilisera JSON.parse() pour transformer la chaîne en variables.
Dans la fonction json_encode(), vous pouvez spécifier des paramètres supplémentaires qui vous permettent de convertir certains caractères en hexadécimal.
Créer une variable PHP à partir d'une chaîne JSONSemblable à ce qui précède, il existe une fonction json_decode() qui vous permet de décoder les chaînes JSON et de placer le contenu dans des variables.
Comme avec JavaScript, ce code affichera ce qui suit :
[email protégé] WonderWidget
Par défaut, json_decode() renvoie les objets JSON sous forme d'objets PHP. Semblable à la syntaxe régulière, nous utilisons -> pour accéder aux propriétés d'un objet.
Si vous souhaitez ultérieurement utiliser les données comme tableau associatif, transmettez simplement le deuxième paramètre true à la fonction json_decode(). Voici un exemple :
$cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";
Cela produit le même résultat :
[email protégé] WonderWidget
Vous pouvez également transmettre des arguments supplémentaires à la fonction json_decode() pour déterminer le traitement des grands nombres et la récursivité.
En conclusion sur le format JSONSi vous envisagez de créer une application web utilisant la technologie Ajax, vous utiliserez certainement le format JSON pour échanger des données entre le serveur et le navigateur.
JSON est un format de texte pour l'enregistrement de données. Il vous permet de représenter sous forme de texte à la fois un nombre ou une chaîne unique et des structures complexes, par exemple des tableaux contenant des données. L'utilisation de ce format d'enregistrement est pratique car il est lisible et intuitif, tout en permettant de stocker des structures de données très complexes. De plus, il est plus compact que XML, donc à mon avis il est plus préférable pour échanger des données entre un navigateur web et un serveur.
Syntaxe JSON avec exemplesLe format json est généralement écrit en 2 variantes :
1. Séquence de valeurs. Par exemple, la séquence 10, 15 et « test » au format JSON ressemblerait à ceci :
2. Enregistrement sous forme de paires clé : valeur. Par exemple:
(« Nom complet » : « Ivanov Sergey », « Date de naissance » : « 03/09/1975 »)
Un exemple un peu plus complexe :
("Nom complet": "Ivanov Sergey", "Adresse": ("Ville": "Moscou", "Rue": "Pyatnitskaya", "Maison": "35") )
Fonctions PHP pour travailler avec le format JSONEn langage PHP depuis la version 5.2. il n'y a que 4 fonctions :
- json_decode - Décode une chaîne JSON (obtient les données d'une chaîne au format json)
- json_encode - Renvoie une représentation JSON des données (convertit les données en chaîne json)
- json_last_error_msg - Renvoie une chaîne indiquant le message d'erreur du dernier appel à json_encode() ou json_decode()
- json_last_error - Renvoie la dernière erreur
En gros, pour la plupart, seules deux fonctions sont utilisées : json_encode et json_decode. Je n'entrerai pas dans les détails de leur syntaxe, vous pouvez consulter php.net pour plus de détails. Exemple d'utilisation :
$arr1 = tableau(0,1,2); $json_str = json_encode($arr1); echo $json_str; // affichera une chaîne json : $arr2 = json_decode($json_str); écho $arr2; // affichera : 1
Attention : lors de l'encodage de données en russe au format JSON, la fonction json_encode convertit les caractères russes en Unicode, c'est-à-dire les remplace par \uXXXX et ainsi la chaîne json devient illisible pour les humains (mais compréhensible pour le navigateur). Si vous souhaitez éviter la conversion en Unicode (par exemple, lors du débogage du code), vous pouvez simplement utiliser l'option JSON_UNESCAPED_UNICODE.
De plus, pour que les barres obliques d'échappement ne soient pas ajoutées lors du codage et pour que les chaînes contenant des nombres soient codées sous forme de nombres, vous pouvez utiliser JSON_UNESCAPED_SLASHES et JSON_NUMERIC_CHECK. De ce fait, pour rendre la chaîne json lisible par un humain, nous ferons par exemple ceci :
$arr = array("fio" => "Ivanov Sergueï", "age" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
Sans utiliser ces options, la ligne ressemblerait à ceci :
( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "age" : "32", "vk_url": "https:\/\ /vk.com\/id11111" )
et en utilisant les options, on obtient une ligne lisible :
( "fio" : "Ivanov Sergueï", "âge" : 32, "vk_url" : "https://vk.com/id11111" )
Encore un point : si vous souhaitez que la fonction json_decode renvoie un tableau lors du décodage d'une chaîne json, ajoutez simplement un deuxième paramètre à la fonction égal à true.
$json_str = "( "a":1, "b":2, "c":3 )"; $obj = json_decode($json_str); // récupère l'objet echo $obj->a; // affichera 1 $arr = json_decode($json_str, true); // récupère un tableau associatif echo $arr["a"]; // imprimera 1
Ceci conclut mon examen des fonctions PHP.
Fonctions JavaScript pour travailler avec le format JSONCommençons par le fait que le format JSON a été inventé à l'origine pour le langage JavaScript et est ensuite devenu simplement un format de texte distinct utilisé dans différents langages. Apparemment, c'est pourquoi la syntaxe JSON est très similaire à la syntaxe d'écriture d'objets et de tableaux ordinaires.
// Exemple de tableau en JavaScript arr = ; alerte(arr); // affichera 1 // Exemple d'objet en JavaScript obj = ( "name": "Vasya", "age": 35, "isAdmin": false ) alert(obj.name); // affichera "Vasya"
Fonctions JavaScript utilisées pour convertir vers et depuis le format JSON :
- JSON.parse - décodage d'une chaîne JSON (conversion d'une chaîne en objets et/ou tableaux)
- JSON.stringify - renvoie une représentation JSON des données (conversion d'objets et/ou de tableaux en chaîne json)
Un exemple simple de décodage d'une chaîne json en un tableau avec des nombres :
Chaîne = "" ; arr = JSON.parse(str); alerte(arr); // imprimera 1
Un exemple de conversion (sérialisation) d'un objet en chaîne JSON :
Obj = ( "nom": "Vasya", "age": 35, "isAdmin": false ) alert(JSON.stringify(obj)); // affichera ("name": "Vasya", "age": 35, "isAdmin": false)
Lors de la sérialisation (conversion) d'un objet en chaîne JSON, la méthode toJSON de cet objet est appelée, si elle existe. S'il n'y a pas de méthode, alors toutes les propriétés de l'objet sont répertoriées. Un exemple de conversion d'un objet avec la méthode toJSON :
Obj = ( "name": "Vasya", "age": 35, "isAdmin": false, toJSON: function() ( return this.age; ) ) alert(JSON.stringify(obj)); // imprimera 35
Exemples d'application pratique du format JSONEn fait, j'utilise personnellement le format JSON dans 2 situations principales :
1. Transfert de données entre le navigateur et le serveur à l'aide de requêtes Ajax.Par exemple, nous avons une page sur laquelle nous devons mettre à jour les données sans recharger la page. Disons que vous avez besoin d'informations avec une liste d'employés et leurs données à « télécharger » depuis le serveur.
En JavaScript, à l'aide de jQuery, nous faisons simple et affichons les données sous forme de tableau dans le navigateur :
$.getJSON("get-info.php").success(function(data) ( // requête ajax, les données du serveur seront écrites dans la variable de données htmlstr = "