Maison > Article > développement back-end > Comment analyser les données JSON en php
Comment PHP analyse-t-il les données JSON ? Cet article vous présentera la méthode de base d'analyse des données JSON en PHP, c'est-à-dire l'encodage et le décodage des données JSON. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Tout d’abord, comprenons Qu’est-ce que JSON ?
JSON est un format standard d'échange de données léger qui peut être analysé et généré rapidement et facilement.
Comme XML, JSON est un format texte facile à écrire et à comprendre, mais contrairement à XML, la structure de données JSON consomme moins de bande passante que la version XML. JSON est basé sur deux structures de base :
Objet : est défini comme une collection de paires clé/valeur (c'est-à-dire clé : valeur). Chaque objet commence par une accolade ouvrante "{" et). se termine par Il se termine par une accolade droite "}", et plusieurs paires clé/valeur sont séparées par des virgules ",".
Tableau : est défini comme une liste ordonnée de valeurs. Le tableau commence par un crochet gauche "[" et se termine par un crochet droit "]". virgules ",".
En JSON, la clé est toujours une chaîne, et la valeur peut être une chaîne, un nombre, vrai ou faux, null ou même un objet ou un tableau. Les chaînes doivent être placées entre guillemets doubles et peuvent contenir des caractères d'échappement tels que n, t et . Un objet JSON peut ressembler à ceci :
{ "book": { "name": "PHP 从入门到精通", "author": "明日科技", "year": 2017, "type": "php编程", "bestseller": true } }
Et un exemple de tableau JSON ressemble à ceci :
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ]}
On peut voir que la structure de données de JSON est très similaire à celui des tableaux PHP. Voyons ensuite comment PHP analyse les données JSON ?
PHP a des fonctions intégrées qui peuvent être utilisées pour encoder et décoder les données JSON. Ces fonctions sont la fonction json_encode() et la fonction json_decode(). Remarque : Ces deux fonctions s'appliquent uniquement aux données de chaîne codées en UTF-8.
Encodage des données JSON en PHP
En PHP, la fonction json_encode() est utilisée pour encoder des valeurs au format JSON. La valeur codée peut être n'importe quel type de données PHP, à l'exception des ressources, telles que les descripteurs de base de données ou de fichiers. L'exemple suivant montre comment encoder un tableau associatif PHP dans un objet JSON :
<?php // 关联数组 $marks = array("Peter"=>65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>
Le résultat de l'exemple ci-dessus ressemble à ceci :
De même, vous pouvez encoder un tableau d'index PHP dans un tableau JSON, par exemple :
<?php // 索引数组 $colors = array("红", "绿", "蓝", "橙", "黄"); echo json_encode($colors); ?>
Le résultat de l'exemple ci-dessus ressemblera à ceci :
Vous pouvez également forcer l'utilisation de l'option JSON_FORCE_OBJECT. La fonction json_encode() renvoie le tableau d'index PHP en tant qu'objet JSON, comme le montre l'exemple suivant :
<?php // 索引数组 $colors = array("红", "绿", "蓝", "橙"); echo json_encode($colors, JSON_FORCE_OBJECT); ?>
La sortie de l'exemple ci-dessus ressemble à ceci :
Comme l'illustrent les exemples ci-dessus, les tableaux non associatifs peuvent être codés sous forme de tableaux ou d'objets. Cependant, les tableaux associatifs sont toujours codés sous forme d'objets.
Décoder les données JSON avec PHP
Décoder les données JSON est aussi simple que de les encoder. Vous pouvez utiliser la fonction PHP json_decode() pour convertir une chaîne codée JSON en type de données PHP approprié. L'exemple suivant montre comment décoder ou convertir un objet JSON en objet PHP.
<?php // 在PHP变量中存储JSON数据 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json)); ?>
Le résultat de l'exemple ci-dessus ressemblera à ceci :
Par défaut, la fonction json_decode() renverra un objet. Cependant, vous pouvez également choisir de spécifier un deuxième paramètre $assoc, qui acceptera une valeur booléenne qui sera décodée en tableau associatif lorsque l'objet JSON est défini sur true, false étant la valeur par défaut. Regardons un exemple :
<?php // 在PHP变量中存储JSON数据 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json, true)); ?>
Le résultat de l'exemple ci-dessus ressemblera à ceci :
Regardons maintenant à nouveau un exemple qui Vous montrez comment décoder les données JSON et accéder aux éléments individuels d'un objet ou d'un tableau JSON en PHP.
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // Access values from the associative array echo $arr["Peter"]; // Output: 65 echo $arr["Harry"]; // Output: 80 echo $arr["John"]; // Output: 78 echo $arr["Clark"]; // Output: 90 // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 返回对象的访问值 echo $obj->Peter; // Output: 65 echo $obj->Harry; // Output: 80 echo $obj->John; // Output: 78 echo $obj->Clark; // Output: 90 ?>
Le résultat de l'exemple ci-dessus ressemblera à ceci :
Vous pouvez également utiliser foreach() pour parcourir les données décodées comme ceci :
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // 通过关联数组循环 foreach($arr as $key=>$value){ echo $key . "=>" . $value . "<br>"; } echo "<hr>"; // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 通过对象循环 foreach($obj as $key=>$value){ echo $key . "=>" . $value . "<br>"; } ?>
Le résultat de l'exemple ci-dessus ressemblera à ceci :
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère cela peut être utile à l'apprentissage de chacun.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!