php json encode 参数,PHP json_encode函数的参数说明与用法

php使用json_encode()函数可以把数组,对象转化成JSON格式的字符串,用于和其它页面的数据交互。今天就说一说PHP中json_encode()函数的定义与使用方法。

PHP json_encode()函数定义

json_encode():可以把数组,对像转化成json格式的字符串

语法:json_encode ( value,options,depth)

参数:

value:要被转换的数据,可以是对象,数组或字符串

options:二进制常量,规定一些要转换的字符串的形式(具体,看文未说明)

depth:设置最大深度。 必须大于0。

注意:depth 参数在一些文档或教材中是不存在,但在PHP官方文档中是有介绍的,在平时,不建议使用,略过即可。

PHP 数组转json

利用 json_encode(函数,可以很轻松的将一维数组,以及二维数组转换成 JSON 字符串,如以下的示例代码。

json_encode()转化一维数组

示例代码:<?php

//飞鸟慕鱼博客

//一维数组转成JSON

$arr = array(

'Name' => 'mochu',

'PageHome' => 'http://www.feiniaomy.com',

);

var_dump(json_encode($arr));

?>

由于json_encode()函数返回的结果是字符串形式的,可以利用var_dump()函数来打印

打印结果:string(56) "{"Name":"mochu","PageHome":"http:\/\/www.feiniaomy.com"}"

json_encode()转化二维数组

示例代码:<?php

//飞鸟慕鱼博客

//二维数组转成JSON

$arr = array(

'Name' => 'mochu',

'PageHome' => 'http://www.feiniaomy.com',

'About' => array(

'Major' => 'PHP',

'Age' => '18',

'Address' => 'Shang Hai',

),

);

var_dump(json_encode($arr));

?>

打印结果:string(113) "{"Name":"mochu","PageHome":"http:\/\/www.feiniaomy.com","About":{"Major":"PHP","Age":"18","Address":"Shang Hai"}}"

由此可见,json_encode()可以对一维数组,以及二维数组进行转化,也就是说,此函数可以对PHP的多维数组进行json格式的转化

php json_encode 中文不转码

示例一:<?php

//飞鸟慕鱼博客

$arr = array(

'Name' => '墨初',

'PageHome' => '飞鸟墨鱼博客',

);

var_dump(json_encode($arr));

?>

打印结果:string(73) "{"Name":"\u58a8\u521d","PageHome":"\u98de\u9e1f\u58a8\u9c7c\u535a\u5ba2"}"

由上面的示例代码可以看出,json_encode()在转化含有中文的数组时,转化后的结果中,中文会以unicode编码的形式输出。

示例二,解决中文被编码的问题

7cdd6dc597785b4cc4e1922a6d51544e.png

//飞鸟慕鱼博客

$arr = array(

'Name' => '墨初',

'PageHome' => '飞鸟墨鱼博客',

);

var_dump(json_encode($arr,JSON_UNESCAPED_UNICODE));

?>

打印结果:string(49) "{"Name":"墨初","PageHome":"飞鸟墨鱼博客"}"

注意:以面的代码中,给json_encode()函数的第二个参数,设成 JSON_UNESCAPED_UNICODE ,可以完全解决中文被转码的问题。

附录:options 参数列表JSON_HEX_TAG

所有的 < 和 > 转换成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。

JSON_HEX_AMP

所有的 & 转换成 \u0026。 自 PHP 5.3.0 起生效。

JSON_HEX_APOS

所有的 ' 转换成 \u0027。 自 PHP 5.3.0 起生效。

JSON_HEX_QUOT

所有的 " 转换成 \u0022。 自 PHP 5.3.0 起生效。

JSON_FORCE_OBJECT

使一个非关联数组输出一个类(Object)而非数组。 在数组为空而接受者需要一个类(Object)的时候尤其有用。 自 PHP 5.3.0 起生效。

JSON_NUMERIC_CHECK

将所有数字字符串编码成数字(numbers)。 自 PHP 5.3.3 起生效。

JSON_PRETTY_PRINT

用空白字符格式化返回的数据。 自 PHP 5.4.0 起生效。

JSON_UNESCAPED_SLASHES

不要编码 /。 自 PHP 5.4.0 起生效。

JSON_UNESCAPED_UNICODE

以字面编码多字节 Unicode 字符(默认是编码成 \uXXXX)。 自 PHP 5.4.0 起生效。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值