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
Release: 2023-04-09 09:42:01
forward
2603 people have browsed it

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;
Copy after login

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);
Copy after login

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);//调用对象元素
Copy after login

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!

Related labels:
source:jb51.net
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template