网站建设服务网络服务,互联网公司薪资待遇,专业做网站费用,做网站找什么公司php中json_decode()和json_encode()的使用方法 json_decode对JSON格式的字符串进行编码而json_encode对变量进行 JSON 编码#xff0c;需要的朋友可以参考下1.json_decode() json_decode (PHP 5  5.2.0, PECL json  1.2.0) json_decode — 对 JSON 格式的字符串进行编… php中json_decode()和json_encode()的使用方法 json_decode对JSON格式的字符串进行编码而json_encode对变量进行 JSON 编码需要的朋友可以参考下  1.json_decode() json_decode (PHP 5  5.2.0, PECL json  1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json 待解码的 json string 格式的字符串。 assoc 当该参数为 TRUE 时将返回 array 而非 object 。 返回值 Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned. 范例 Example #1 json_decode() 的例子 复制代码 代码如下:  ?php $json  {a:1,b:2,c:3,d:4,e:5}; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?  上例将输出 复制代码 代码如下:  object(stdClass)#1 (5) { [a]  int(1) [b]  int(2) [c]  int(3) [d]  int(4) [e]  int(5) } array(5) { [a]  int(1) [b]  int(2) [c]  int(3) [d]  int(4) [e]  int(5) }  复制代码 代码如下:  $data[{Name:a1,Number:123,Contno:000,QQNo:},{Name:a1,Number:123,Contno:000,QQNo:},{Name:a1,Number:123,Contno:000,QQNo:}]; echo json_decode($data);  结果为 复制代码 代码如下:  Array ( [0]  stdClass Object ( [Name]  a1 [Number]  123 [Contno]  000 [QQNo]  ) [1]  stdClass Object ( [Name]  a1 [Number]  123 [Contno]  000 [QQNo]  ) [2]  stdClass Object ( [Name]  a1 [Number]  123 [Contno]  000 [QQNo]  ) )  可以看出经过json_decode()编译出来的是对象,现在输出json_decode($data,true)试下 复制代码 代码如下:  echo json_decode($data,true);  结果 复制代码 代码如下:  Array ( [0]  Array ( [Name]  a1 [Number]  123 [Contno]  000 [QQNo]  ) [1]  Array ( [Name]  a1 [Number]  123 [Contno]  000 [QQNo]  ) [2]  Array ( [Name]  a1 [Number]  123 [Contno]  000 [QQNo]  ) )  可以看出 json_decode($data,true)输出的一个关联数组,由此可知json_decode($data输出的是对象,而json_decode($arr,true)是把它强制生成PHP关联数组. 2.json_encode() json_encode (PHP 5  5.2.0, PECL json  1.2.0) json_encode — 对变量进行 JSON 编码 Report a bug 说明 string json_encode ( mixed $value [, int $options  0 ] ) 返回 value 值的 JSON 形式 Report a bug 参数 value 待编码的 value 除了resource 类型之外可以为任何数据类型 该函数只能接受 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, JSON_UNESCAPED_UNICODE. Report a bug 返回值 编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE 。 Report a bug 更新日志 版本 说明 5.4.0 options 参数增加常量 JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE。 5.3.3 options 参数增加常量JSON_NUMERIC_CHECK。 5.3.0 增加 options 参数. Report a bug 范例 Example #1 A json_encode() 的例子 复制代码 代码如下:  ?php $arr  array (a1,b2,c3,d4,e5); echo json_encode($arr); ?  以上例程会输出 复制代码 代码如下:  {a:1,b:2,c:3,d:4,e:5}  Example #2 json_encode() 函数中 options 参数的用法 复制代码 代码如下:  ?php $a  array(foo,bar,baz,blong, \xc3\xa9); echo Normal: , json_encode($a), \n; echo Tags: , json_encode($a, JSON_HEX_TAG), \n; echo Apos: , json_encode($a, JSON_HEX_APOS), \n; echo Quot: , json_encode($a, JSON_HEX_QUOT), \n; echo Amp: , json_encode($a, JSON_HEX_AMP), \n; echo Unicode: , json_encode($a, JSON_UNESCAPED_UNICODE), \n; echo All: , json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), \n\n; $b  array(); echo Empty array output as array: , json_encode($b), \n; echo Empty array output as object: , json_encode($b, JSON_FORCE_OBJECT), \n\n; $c  array(array(1,2,3)); echo Non-associative array output as array: , json_encode($c), \n; echo Non-associative array output as object: , json_encode($c, JSON_FORCE_OBJECT), \n\n; $d  array(foo  bar, baz  long); echo Associative array always output as object: , json_encode($d), \n; echo Associative array always output as object: , json_encode($d, JSON_FORCE_OBJECT), \n\n; ?  以上例程会输出 复制代码 代码如下:  Normal: [foo,bar,\baz\,blong,\u00e9] Tags: [\u003Cfoo\u003E,bar,\baz\,blong,\u00e9] Apos: [foo,\u0027bar\u0027,\baz\,blong,\u00e9] Quot: [foo,bar,\u0022baz\u0022,blong,\u00e9] Amp: [foo,bar,\baz\,\u0026blong\u0026,\u00e9] Unicode: [foo,bar,\baz\,blong,é] All: [\u003Cfoo\u003E,\u0027bar\u0027,\u0022baz\u0022,\u0026blong\u0026,é] Empty array output as array: [] Empty array output as object: {} Non-associative array output as array: [[1,2,3]] Non-associative array output as object: {0:{0:1,1:2,2:3}} Associative array always output as object: {foo:bar,baz:long} Associative array always output as object: {foo:bar,baz:long}  Example #3 连续与非连续数组示例 复制代码 代码如下:  ?php echo 连续数组.PHP_EOL; $sequential  array(foo, bar, baz, blong); var_dump( $sequential, json_encode($sequential) ); echo PHP_EOL.非连续数组.PHP_EOL; $nonsequential  array(1foo, 2bar, 3baz, 4blong); var_dump( $nonsequential, json_encode($nonsequential) ); echo PHP_EOL.删除一个连续数组值的方式产生的非连续数组.PHP_EOL; unset($sequential[1]); var_dump( $sequential, json_encode($sequential) ); ?  以上例程会输出 复制代码 代码如下:  连续数组 array(4) { [0] string(3) foo [1] string(3) bar [2] string(3) baz [3] string(5) blong } string(27) [foo,bar,baz,blong] 非连续数组 array(4) { [1] string(3) foo [2] string(3) bar [3] string(3) baz [4] string(5) blong } string(43) {1:foo,2:bar,3:baz,4:blong} 删除一个连续数组值的方式产生的非连续数组 array(3) { [0] string(3) foo [2] string(3) baz [3] string(5) blong } string(33) {0:foo,2:baz,3:blong}  复制代码 代码如下:  $obj-Name a1;$obj-Number 123; $obj-Contno 000; echo json_encode($obj);  结果为 复制代码 代码如下:  {Name:a1, Number:123, Contno:000 }  可以看出json_encode()和json_decode()是编译和反编译过程注意json只接受utf-8编码的字符所以json_encode()的参数必须是utf-8编码否则会得到空字符或者null。 转载于:https://www.cnblogs.com/shsgl/p/5207359.html