十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇“php将json转成数组对象的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php将json转成数组对象的方法是什么”文章吧。
专业领域包括网站设计制作、成都网站设计、购物商城网站建设、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联公司的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
JSON是一种轻量级的数据交换格式,具有结构清晰、易于读写等特点。PHP内置JSON处理函数,可以很方便地将JSON转化为数组或对象形式。
假设我们有如下JSON数据:
{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }
使用PHP的json_decode()
函数可以将其转化为数组对象。函数的用法如下:
array|object json_decode(string $json[, bool $assoc = false[, int $depth = 512[, int $options = 0]]])
参数说明:
$json:需要解码的JSON字符串。
$assoc(可选):当该参数为真时,将返回数组形式,为假时返回对象形式。默认为假。
$depth(可选):设置解析JSON数据的最大深度。默认为512,超出范围将返回null。
$options(可选):设置JSON解码器的选项,如JSON_BIGINT_AS_STRING可以将大整数视为字符串返回。
代码示例:
$jsonStr = '{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }'; $array = json_decode($jsonStr, true); print_r($array);
输出结果:
Array ( [name] => Tom [age] => 20 [address] => Array ( [province] => Guangdong [city] => Guangzhou ) [hobbies] => Array ( [0] => reading [1] => swimming ) )
可以看到,json_decode()
函数将JSON字符串转化为了PHP数组对象。
如果要将JSON数据转化为PHP对象形式,可以去掉函数中的第二个参数或将其设置为false。
除了将JSON数据转化为数组或对象形式,PHP还可以将数组或对象形式的数据编码为JSON字符串。这可以使用PHP的json_encode()
函数实现。函数用法如下:
string json_encode(mixed $value[, int $options = 0[, int $depth = 512]])
参数说明:
$value:需要编码为JSON字符串的值。
$options(可选):设置JSON编码器的选项,如JSON_PRETTY_PRINT可以使编码后的JSON字符串更易于阅读。
$depth(可选):设置编码JSON数据的最大深度。默认为512,超出范围将返回空字符串。
代码示例:
$array = array( 'name' => 'Tom', 'age' => 20, 'address' => array( 'province' => 'Guangdong', 'city' => 'Guangzhou' ), 'hobbies' => array( 'reading', 'swimming' ) ); $jsonStr = json_encode($array, JSON_PRETTY_PRINT); echo $jsonStr;
输出结果:
{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }
以上就是关于“php将json转成数组对象的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。