json_encode详解
Posted jorzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json_encode详解相关的知识,希望对你有一定的参考价值。
1、特殊字符(<, >, ‘, “, &)的处理
<?php $a = array(‘<foo>‘, "‘bar‘", ‘"baz"‘, ‘&blong&‘); /*Normal*/ echo json_encode($a)."<br/>"; /*JSON_HEX_TAG:将所有的< 和 > 转换成u003C和u003E*/ echo json_encode($a[0], JSON_HEX_TAG)."<br/>"; /*JSON_HEX_APOS:将所有的‘转换成u0027*/ echo json_encode($a[1], JSON_HEX_APOS)."<br/>"; /*JSON_HEX_QUOT:将所有的"转换成u0022*/ echo json_encode($a[2], JSON_HEX_QUOT)."<br/>"; /*JSON_HEX_AMP:将所有的&转换成u0026*/ echo json_encode($a[3], JSON_HEX_AMP)."<br/>"; ?>
输出: ["","‘bar‘",""baz"","&blong&"] "u003Cfoou003E" "u0027baru0027" "u0022bazu0022" "u0026blongu0026"
2、使一个非关联数组输出一个类而非数组
<?php /*JSON_FORCE_OBJECT:使一个非关联数组输出一个类而非数组*/ $b = array(); echo json_encode($b)."<br/>"; echo json_encode($b, JSON_FORCE_OBJECT)."<br/>"; $c = array(array(1,2,3)); echo json_encode($c)."<br/>"; echo json_encode($c, JSON_FORCE_OBJECT)."<br/>"; $d = array(‘foo‘ => ‘bar‘, ‘baz‘ => ‘long‘); echo json_encode($d)."<br/>"; echo json_encode($d, JSON_FORCE_OBJECT)."<br/>"; ?> 输出: [] {} [[1,2,3]] {"0":{"0":1,"1":2,"2":3}} {"foo":"bar","baz":"long"} {"foo":"bar","baz":"long"}
3、将数字字符串编码成数字
<?php /*JOSN_NUMERIC_CHECK:将所有的数字字符串编码成数字*/ $e = array(‘12345‘, ‘789‘); echo json_encode($e)."<br/>"; echo json_encode($e, JSON_NUMERIC_CHECK); ?> 输出: ["12345","789"] [12345,789]
4、特殊字符’/’的处理(不要编码’/’)
<?php /*JSON_UNESCAPED_SLASHES:不要编码/*/ $f = array(‘/abcd‘); echo json_encode($f)."<br/>"; echo json_encode($f, JSON_UNESCAPED_SLASHES)."<br/>"; ?> 输出: ["/abcd"] ["/abcd"]
5、确保浮点数被编码为浮点数
<?php /*JSON_PRESERVE_ZERO_FRACTION:确保浮点数被编码为浮点数*/ echo json_encode(12.0)."<br/>"; echo json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION)."<br/>"; ?> 输出: 12 12.0
6、中文字符编码(以字面编码多字节Unicode字符)
<?php $g = array(‘你好!‘, ‘世界‘); /*JSON_UNESCAPED_UNICODE:以字面编码多字节Unicode字符(默认是编程成uXXXX)*/ echo json_encode($g)."<br/>"; echo json_encode($g, JSON_UNESCAPED_UNICODE)."<br/>"; ?> 输出: ["u4f60u597duff01","u4e16u754c"] ["你好!","世界"]