Home >Backend Development >PHP Tutorial >Encoding and decoding of JSON in PHP (detailed examples)

Encoding and decoding of JSON in PHP (detailed examples)

WBOY
WBOYOriginal
2021-11-04 10:46:565345browse

In the previous article "Teach you how to convert arrays and strings in PHP in five minutes" we introduced in detail the relevant knowledge of converting arrays and strings in PHP. This article In this article, let’s take a look at the relevant knowledge of JSON in PHP. I hope it will be helpful to everyone!

Encoding and decoding of JSON in PHP (detailed examples)

In the previous article, we learned how to complete the conversion between arrays and strings in PHP, which requires explode() function and implode() function to implement. Next, we need to understand some knowledge of JSON and see how PHP encodes variables in JSON.

If we want to encode variables in JSON with PHP, first we need to understand what JSON is. Let's take a look at it together.

What is JSON

JSON is mainly used to transmit data. It is a lightweight data exchange format that can completely A programming language different from PHP to store and represent data.

It is relatively easy to read and write. At the same time, JSON is relatively simple for machine parsing and generation. JSON can very effectively improve the efficiency of data transmission.

We already have built-in JSON extensions in PHP. Next, let’s take a look at the JSON function in PHP and how to use the PHP language to encode JSON objects.

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

json_encode() in PHP is used to JSON encode variables. The basic syntax format of this function is as follows:

string json_encode ( $value [, $options = 0 ] )

What needs to be noted is: run json_encode( )If the function is successful, the returned result is JSON data. If there is an error, the returned result is false;

Parameter$value represents the value that needs to be encoded. The special thing about json_encode() is that only UTF-8 encoded data is valid for this function. The parameter options represents a binary mask composed of constants. These constants are: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES , JSON_FORCE_OBJECT.

Next, let’s look at the use of the json_encode() function in PHP through an example, which is to convert PHP array elements into JSON format data. The example is as follows:

<?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);
?>

Output results:

Encoding and decoding of JSON in PHP (detailed examples)

We can see from the above example that json_encode() can be used to convert PHP array elements into JSON suitable data, and only UTF-8 encoding The data is valid for this function.

The above example converts a one-dimensional array in PHP. Next, let’s take a look at the result of multi-dimensional array conversion. The example is as follows:

<?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}}}
  ?>

Output result:

Encoding and decoding of JSON in PHP (detailed examples)

The above example is to convert array elements in PHP through functions. Next, let’s take a look at converting PHP objects into data in JSON format. The example is as follows:

<?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"}
  ?>

Output result:

Encoding and decoding of JSON in PHP (detailed examples)

Let’s look at another example:

<?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);
?>

Output result:

Encoding and decoding of JSON in PHP (detailed examples)

From this we complete the conversion of objects in PHP into JSON format through the json_encode() function.

<strong><span style="font-size: 20px;">json_decode()</span></strong>JSON decoding

In PHP, you can use the json_decode() function to convert characters in JSON format into PHP variable format, which is decoding. Let's take a look at the basic syntax format of the json_decode() function. The example is as follows:

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

It should be noted that the parameter json_string represents the string in JSON format that needs to be converted, that is, decoded. , like the json_encode() function, the decoded data must also be UTF-8 encoded data; the parameter assoc indicates that when the parameter is true, the returned result is an array, and when the parameter is false, The returned result is an object; the

parameter depth represents an integer type parameter, and the parameter options represents a binary mask, which is different from json_encode() However, this function currently does not support so many, and currently only supports JSON_BIGINT_AS_STRING.

Next, let’s take an example to see how PHP decodes it. The example is as follows:

<?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));
?>

Output result:

Encoding and decoding of JSON in PHP (detailed examples)

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

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

输出结果:

Encoding and decoding of JSON in PHP (detailed examples)

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

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

The above is the detailed content of Encoding and decoding of JSON in PHP (detailed examples). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn