在web开发中,json(javascript object notation)已经成为一种常见的数据交换格式。它是一种轻量级的数据交换格式,易于阅读和编写。但是在php中,常常需要将json数据转换成对象或者数组来方便处理数据。本文将介绍如何用php将json数据转换成对象数组。
一、 json简介
json是一种轻量级的数据交换格式,它的数据结构和javascript的对象和数组非常相似。它由两种结构组成:键值对和数组。键值对使用冒号分隔,数组使用中括号包含元素,每个键值对或者数组元素之间使用逗号分隔。以下是一个json的示例:
{ name: 张三, age: 25, hobby: [reading, traveling, music], address: { province: 广东, city: 深圳, street: 科技园南区 }}
二、 json转换成php对象
在php中,可以使用json_decode()函数将json字符串转换成php对象。json_decode()函数接受三个参数:json字符串、是否转换成数组(默认为false)、深度(默认为512)。以下是一个将json字符串转换成php对象的示例:
$jsonstr = '{name:张三,age:25,hobby:[reading,traveling,music],address:{province:广东,city:深圳,street:科技园南区}}';$obj = json_decode($jsonstr);var_dump($obj);
输出结果:
object(stdclass)#1 (4) { [name]=> string(6) 张三 [age]=> int(25) [hobby]=> array(3) { [0]=> string(7) reading [1]=> string(10) traveling [2]=> string(5) music } [address]=> object(stdclass)#2 (3) { [province]=> string(6) 广东 [city]=> string(6) 深圳 [street]=> string(15) 科技园南区 }}
可以看到,json_decode()函数将json字符串转换成了一个stdclass对象。通过对象的属性引用,可以获取json中的数据。例如:
echo $obj->name; //输出:张三echo $obj->age; //输出:25echo $obj->hobby[0]; //输出:readingecho $obj->address->province; //输出:广东
三、 json转换成php数组
除了将json字符串转换成php对象,还可以使用json_decode()函数将json字符串转换成php数组。只需要将json_decode()函数的第二个参数设置为true即可。以下是一个示例:
$jsonstr = '{name:张三,age:25,hobby:[reading,traveling,music],address:{province:广东,city:深圳,street:科技园南区}}';$arr = json_decode($jsonstr, true);var_dump($arr);
输出结果:
array(4) { [name]=> string(6) 张三 [age]=> int(25) [hobby]=> array(3) { [0]=> string(7) reading [1]=> string(10) traveling [2]=> string(5) music } [address]=> array(3) { [province]=> string(6) 广东 [city]=> string(6) 深圳 [street]=> string(15) 科技园南区 }}
可以看到,将json_decode()函数的第二个参数设置为true后,将json字符串转换成了一个php数组。通过数组下标,可以获取json中的数据。例如:
echo $arr['name']; //输出:张三echo $arr['hobby'][0]; //输出:readingecho $arr['address']['city']; //输出:深圳
四、 总结
在web开发中,json是一种常见的数据交换格式。在php中,使用json_decode()函数可以将json字符串轻松转换成php对象或者数组来方便处理数据。本文介绍了如何将json数据转换成php对象数组,希望可以对php开发人员有所帮助。
以上就是如何用php将json数据转成对象数组的详细内容。