Home >Backend Development >PHP Tutorial >Understand the difference between json_encode and json_decode in PHP

Understand the difference between json_encode and json_decode in PHP

coldplay.xixi
coldplay.xixiforward
2020-07-18 17:01:332647browse

Understand the difference between json_encode and json_decode in PHP

##1. json_encode() JSON encodes variables

    Syntax: json_encode($value[,$options=0])
  • Note: 1. $value is the value to be encoded, and this function is only valid for UTF8 encoded data;
  • ​ ​ ​ ​ ​ 2. options: a binary mask composed of the following constants: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, ​​​​​​PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT;
    ​ ​ 3. The second parameter is generally not needed;
    ​​ 4. JSON data is actually a string, which can be printed out using var_dump() to see the data type;
    ​ 5. JSON data will be returned if the execution is successful, otherwise FALSE will be returned.
Example:

$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
$json = json_encode($book);
echo $json;

The results printed by the browser are as follows:

{"a":"xiyouji","b":"sanguo ","c":"shuihu","d":"hongloumeng"}

##2. json_decode() decodes JSON data and converts it into PHP variables

Syntax: json_decode($json[,$assoc=false[,$depth=512[,$options=0]]])
  • Note: 1 , $json is the data to be decoded, which must be utf8-encoded data;
  • ​​2. When the $assoc value is TRUE, it returns an array, and when it is FALSE, it returns an object;
  • 3. $depth is the recursion depth;
    ​​4. $option binary mask, currently only supports JSON_BIGINT_AS_STRING;
    5. Generally, only the first two parameters are used. If you want data of a data type, add a parameter true.

  • Example:
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
  $json = json_encode($book);
  
  $array = json_decode($json,TRUE);
  $obj = json_decode($json);
  var_dump($array);
  var_dump($obj);

The results printed by the browser are as follows:

array(4) { ["a"]=> string( 7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]=> string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }
object(stdClass)#2 (4) { ["a"]=> string(7) "xiyouji" ["b"]=> string(6) "sanguo" ["c"]= > string(6) "shuihu" ["d"]=> string(11) "hongloumeng" }


The two results don’t seem to be much different, but when the elements inside are called, The methods of array and obj are different.
$book = array('a'=>'xiyouji','b'=>'sanguo','c'=>'shuihu','d'=>'hongloumeng');
  $json = json_encode($book);
  
  $array = json_decode($json,TRUE);
  $obj = json_decode($json);
  var_dump($array['b']);//调用数组元素
  echo &#39;<br/>&#39;;
  var_dump($obj->c);//调用对象元素

The print result is as follows:

string(6) "sanguo" string(6) "shuihu"

This ends the brief analysis of this article This concludes the article on the difference between json_encode and json_decode in PHP. For more information about PHP json_encode and json_decode, please search Script House’s previous articles or continue to browse the relevant articles below. I hope you will support Script House in the future!

Related learning recommendations:
PHP programming from entry to proficiency

The above is the detailed content of Understand the difference between json_encode and json_decode in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:jb51.net. If there is any infringement, please contact admin@php.cn delete