PHP数组与JSON的转换
本节介绍
- PHP数组转JSON
- JSON转PHP数组
1. PHP数组和ISON之间的转换
- 从PHP5.2开始,PHP提供原生的函数实现JSON字符串和PHP结构间的转换。
- 使用函数json_encode()可以将一个数组转化为JSON格式的字符串
- 使用函数json_decode()可以将JSON字符串转化为PHP数组
2. PHP数组转ISON
- 使用函数json_encode()可以将PAP撒组转化为J5ON字符串
- 语法:string json_encode (mixed
oplions =0])
- 成功返回value值的JSON形式字符串,失败返回false
- 参数说明:
- 参数1:必选值,待编码的value,除了resource类型之外,可以为任何数据类型(通常是数组和对象)
- 参数2:可选值
- 示例:
-
<?php //将PHP数组转化为JSON字符串 $a1 = array( "k1" => "v1", "k2" => "v2", "k3" => "v3" ) ; $a2 = array( "k1" => "v4", "k2" => "v5", "k3" => "v6" ) ; $aa = array($a1, $a2) ; $jsonStr = json_encode($aa) ; //直接打印 echo($jsonStr); ?>
-
- 接口封装:
-
<?php //将PHP数组转化为JSON字符串 $a1 = array( "k1" => "v1", "k2" => "v2", "k3" => "v3" ) ; $a2 = array( "k1" => "v4", "k2" => "v5", "k3" => "v6" ) ; $aa = array($a1, $a2) ; $jsonStr = json_encode($aa) ; $result = array( "resultCode" => 200, "message" => "successed", "data" => $aa ) ; $resultStr = json_encode($result) ; echo($resultStr) ; ?>
-
- 应用场景:一般情况下,所有的PHP接囗将返回的数据封装为数组,然后将数细转换为JSON字符串后返回给客户端
3. JSON转PHP数组
- 使用函数json_decode()可以将JSON字符串转化为PHP数组
- 语法:mixed json_decode (string
assoc])
- 接受一个JSON格式的字符串并且把它转换为PHP变量
- 参数说明:
- 参数1:json格式字符串
- 参数2:默认为false,返回php对象,为true则返回php数组
- 示例:
-
<?php //JSON字符串转PHP数组 $json = '[{"name":"carry", "sex":"man"}, {"name":"jack", "sex":"man"}, {"name":"amy", "sex":"woman"}]' ; echo ($json) ; ?>
-
- 返回php对象
-
<?php //JSON字符串转PHP数组 $json = '[{"name":"carry", "sex":"man"}, {"name":"jack", "sex":"man"}, {"name":"amy", "sex":"woman"}]' ; $arr = json_decode($json) ; var_dump($arr) ; ?>
- 返回php数组
-
<?php //JSON字符串转PHP数组 $json = '[{"name":"carry", "sex":"man"}, {"name":"jack", "sex":"man"}, {"name":"amy", "sex":"woman"}]' ; $arr = json_decode($json,true) ; var_dump($arr) ; ?>
- 读取数据
-
<?php //JSON字符串转PHP数组 $json = '[{"name":"carry", "sex":"man"}, {"name":"jack", "sex":"man"}, {"name":"amy", "sex":"woman"}]' ; $arr = json_decode($json,true) ; //打印第一个人的姓名 echo($arr[0]["name"]) ; ?>
- 应用场景:客户端在发送请求的时候,如果一个参数的值包含多个,如针对多条性查询,可将参数以JSON字符串格式发送