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&"]"\u003Cfoo\u003E""\u0027bar\u0027""\u0022baz\u0022""\u0026blong\u0026"
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/>";?>输出:1212.0
6、中文字符编码(以字面编码多字节Unicode字符)
<?php ???$g = array(‘你好!‘, ‘世界‘); ???/*JSON_UNESCAPED_UNICODE:以字面编码多字节Unicode字符(默认是编程成\uXXXX)*/ ???echo json_encode($g)."<br/>"; ???echo json_encode($g, JSON_UNESCAPED_UNICODE)."<br/>";?>输出:["\u4f60\u597d\uff01","\u4e16\u754c"]["你好!","世界"]
json_encode详解
原文地址:https://www.cnblogs.com/jorzy/p/9759663.html