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"]
["你好!","世界"]

 

以上是关于json_encode详解的主要内容,如果未能解决你的问题,请参考以下文章

(转) Java中的负数及基本类型的转型详解

详解Android WebView加载html片段

PHP JSON格式数据交互实例代码详解

14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段

Python中verbaim标签使用详解

Yii2片段缓存详解