Maison > développement back-end > tutoriel php > Encodage et décodage de JSON en PHP (exemples détaillés)

Encodage et décodage de JSON en PHP (exemples détaillés)

WBOY
Libérer: 2023-04-10 19:16:01
original
5348 Les gens l'ont consulté

Dans l'article précédent "Vous apprendre à convertir des tableaux et des chaînes entre eux en PHP en cinq minutes", nous avons présenté en détail les connaissances pertinentes sur la conversion de tableaux et de chaînes entre eux en PHP. J'espère que ces connaissances sur JSON en PHP seront utiles à tout le monde !

Encodage et décodage de JSON en PHP (exemples détaillés)

Dans l'article précédent, nous avons appris comment réaliser la conversion entre tableaux et chaînes en PHP, qui nécessite la fonction explode() et la fonction implode() pour l'implémenter, nous devons ensuite comprendre certaines connaissances de JSON et voir comment PHP JSON encode les variables. explode()函数和implode()函数来实现,接下来我们需要了解一下JSON的一些知识,看一下PHP怎样对变量进行JSON编码。

想要进行PHP对变量进行JSON 的编码首先我们需要了解一下什么是JSON,下面我们一起来看一下吧。

JSON是什么

JSON 主要用于传送数据,它是一种轻量级的数据交换的格式,它能够完全的不同于PHP的编程语言来进行储存和表示数据。

它比较容易阅读和编写,同时JSON对于机器的解析和生成也是比较简单,通过JSON能够十分有效的提高数据之间传送的效率。

我们在PHP中已经有内置的JSON拓展,接下来我们就来看一下PHP中的JSON函数,应该如何使用PHP语言来编码JSON对象。

<strong><span style="font-size: 20px;">json_encode()</span></strong>JSON编码

在PHP中的json_encode()是用来对变量进行JSON编码的,该函数的基本语法格式如下:

string json_encode ( $value [, $options = 0 ] )
Copier après la connexion

其中需要注意的是:运行json_encode()函数成功的话,返回的结果就是JSON的数据,如果运行错误,返回的结果是false;

参数$value表示的就是需要进行编码的值,其中json_encode()比较特殊的是,只有UTF-8 编码的数据对该函数有效,参数options表示的是由常量组成的二进制的掩码,这些常量有:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT

接下来我们通过示例来看一下PHP中json_encode()函数的使用,也就是将PHP的数组元素转换为JSON格式的数据,示例如下:

<?php
   $arr = array(&#39;a&#39; => 1, &#39;b&#39; => 2, &#39;c&#39; => 3, &#39;d&#39; => 4, &#39;e&#39; => 5);
   echo json_encode($arr);
   $arr1 = array(&#39;一&#39; => 1, &#39;二&#39; => 2, &#39;三&#39; => 3, &#39;四&#39; => 4, &#39;五&#39; => 5);
   echo json_encode($arr1);
?>
Copier après la connexion

输出结果:

Encodage et décodage de JSON en PHP (exemples détaillés)

由上述示例我们能够看到,通过json_encode()能够将PHP的数组元素转换为JSON合适的数据,而且只有UTF-8 编码的数据对该函数有效。

上述示例转换的是PHP中的一维数组,接下来我们看一下多维数组转换的结果是什么样的,示例如下:

<?php
$arr_2 = array();
// 三维数组
$arr_2[&#39;member&#39;][&#39;lisi&#39;][&#39;job&#39;] = "worker";
$arr_2[&#39;member&#39;][&#39;lisi&#39;][&#39;age&#39;] = 30;
$arr_2[&#39;member&#39;][&#39;wangwu&#39;][&#39;job&#39;] = "student";
$arr_2[&#39;member&#39;][&#39;wangwu&#39;][&#39;age&#39;] = 10;
 
echo json_encode($arr_2);
//{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
  ?>
Copier après la connexion

输出结果:

Encodage et décodage de JSON en PHP (exemples détaillés)

上述示例是通过函数将PHP中的数组元素进行转换,接下来我们看一下将PHP对象转换为JSON格式的数据,示例如下:

<?php
class Person{
    public $name = "public name";
    protected $ptName = "protected name";
    private $pName = "private name";
 
    public function sayName(){
        return $this->name;
    }
}
$person1 = new Person();
echo json_encode($person1);//{"name":"public name"}
  ?>
Copier après la connexion

输出结果:

Encodage et décodage de JSON en PHP (exemples détaillés)

再来看一个示例:

<?php
   class Emp {
       public $name = "";
       public $hobbies  = "";
       public $birthdate = "";
   }
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date(&#39;m/d/Y h:i:s a&#39;, "8/5/1974 12:20:03 p");
   $e->birthdate = date(&#39;m/d/Y h:i:s a&#39;, strtotime("8/5/1974 12:20:03"));
 
   echo json_encode($e);
?>
Copier après la connexion

输出结果:

Encodage et décodage de JSON en PHP (exemples détaillés)

由此我们便通过json_encode()函数完成了PHP中对象转换为JSON格式。

<strong><span style="max-width:90%">json_decode()</span></strong>JSON解码

PHP中能够通过json_decode()函数来对JSON格式的字符换进行转换成PHP的变量格式,这也就是解码。下面我们看一下json_decode()函数的基本语法格式,示例如下:

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Copier après la connexion

其中需要注意的是:参数json_string表示需要进行转换也就是解码的JSON格式的字符串,同json_encode()函数一样,这个进行解码的数据也必须是UTF-8的编码数据;参数assoc表示当参数是true的时候,返回的结果是个数组,当参数是false是返回的结果是对象;

参数depth表示的是整数类型的参数,参数options表示的是二进制的掩码,与json_encode()不同的是该函数目前没有支持这么多,目前只支持 JSON_BIGINT_AS_STRING

Si vous souhaitez encoder des variables en JSON avec PHP, nous devons tout d'abord comprendre ce qu'est JSON. Examinons-le ensemble.

Qu'est-ce que JSON


JSON est principalement utilisé pour transmettre des données. C'est un format d'échange de données léger, il peut. stocker et représenter des données complètement différentes du langage de programmation PHP.

🎜🎜Il est relativement facile à lire et à écrire. En même temps, JSON est relativement simple pour l'analyse et la génération automatiques. JSON peut améliorer très efficacement l'efficacité de la transmission des données. 🎜🎜Nous avons déjà des extensions JSON intégrées en PHP. Examinons ensuite la fonction JSON en PHP et comment utiliser le langage PHP pour encoder des objets JSON. 🎜🎜<strong><span style="font-size: 20px;">json_encode()</span></strong>L'encodage JSON🎜🎜🎜json_encode() en PHP est utilisé pour encoder des variables JSON. Le format de syntaxe de base de cette fonction est le suivant : 🎜
<?php
   $json = &#39;{"a":1,"b":2,"c":3,"d":4,"e":5}&#39;;
   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>
Copier après la connexion
🎜 Quels sont les besoins à noter : si la fonction json_encode() est exécutée avec succès, le résultat renvoyé est une donnée JSON. Si l'erreur d'opération se produit, le résultat renvoyé est faux 🎜🎜Paramètres $value< ; /code > représente la valeur qui doit être encodée. La particularité de json_encode() est que seules les données codées en UTF-8 sont valides pour cette fonction. Le paramètre <code>options représente un masque binaire composé de constantes. .code, ces constantes sont : JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK</code > ,<code>JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT. 🎜🎜Ensuite, examinons l'utilisation de la fonction json_encode() en PHP à travers un exemple, qui consiste à convertir les éléments d'un tableau PHP en données au format JSON. L'exemple est le suivant : 🎜
<?php
$jsonStr = &#39;{"key1":"value1","key2":"value2"}&#39;;
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>
Copier après la connexion
Copier après la connexion
🎜Résultat de sortie : 🎜🎜🎜🎜🎜Nous pouvons voir depuis le Dans l'exemple ci-dessus, les éléments du tableau PHP peuvent être convertis en données JSON appropriées via json_encode(), et seules les données codées en UTF-8 sont valides pour cette fonction. 🎜🎜L'exemple ci-dessus convertit un tableau unidimensionnel en PHP. Examinons ensuite le résultat de la conversion d'un tableau multidimensionnel. L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜Encodage et décodage de JSON en PHP (exemples détaillés)🎜🎜L'exemple ci-dessus consiste à utiliser des fonctions pour convertissez les éléments du tableau en conversion PHP, examinons ensuite la conversion des objets PHP en données au format JSON. L'exemple est le suivant : 🎜🎜rrreee🎜 Résultats de sortie : 🎜🎜🎜Encodage et décodage de JSON en PHP (exemples détaillés)🎜🎜Regardons un autre exemple : 🎜rrreee🎜Résultat de sortie : 🎜🎜 🎜 Encodage et décodage de JSON en PHP (exemples détaillés)🎜🎜De là, nous complété PHP via la fonction json_encode() Convertissez l'objet au format JSON. 🎜🎜🎜<strong><span style="max-width:90%">json_decode()</span></strong>Décodage JSON🎜🎜En PHP, vous pouvez utiliser la fonction json_decode() pour convertir les caractères au format JSON en format variable PHP, qui est le décodage. Jetons un coup d'œil au format de syntaxe de base de la fonction json_decode(). L'exemple est le suivant : 🎜rrreee🎜 Ce qu'il faut noter, c'est que le paramètre json_string représente la chaîne au format JSON qui a besoin. pour être converti, c'est-à-dire décodé, comme la fonction < Comme la fonction code>json_encode(), les données décodées doivent également être des données codées en UTF-8 le paramètre assoc signifie que lorsque le paramètre est vrai, le le résultat renvoyé est un tableau, et lorsque le paramètre est faux, il est renvoyé Le résultat est un objet 🎜🎜Le paramètre profondeur représente un paramètre de type entier, et le paramètre options représente un masque binaire. La différence avec json_encode() est que cette fonction est actuellement peu prise en charge, actuellement seul JSON_BIGINT_AS_STRING est pris en charge. 🎜🎜Ensuite, prenons un exemple pour voir comment PHP le décode. L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜.

Encodage et décodage de JSON en PHP (exemples détaillés)

通过上述示例我们看到了通过json_decode()对JSON进行解码,上述是解码成数组,下面我们看一下解码成对象,示例如下:

<?php
$jsonStr = &#39;{"key1":"value1","key2":"value2"}&#39;;
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>
Copier après la connexion
Copier après la connexion

输出结果:

Encodage et décodage de JSON en PHP (exemples détaillés)

由此我们便通过json_encode()函数与json_decode()函数完成了PHP数据与JSON的编码与解码。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal