在web开发中,json格式非常常见,因为它可以将数据在不同的编程语言之间进行传输和交换。php语言也提供了非常方便的json编解码方法,可以将json字符串转化为php数组或对象,也可以将php数组或对象转化为json字符串。本文将介绍php中将json字符串转换为数组或对象,并进一步将数组或对象转换为数组或对象的方法。
JSON转换为数组
使用PHP内置的json_decode()函数可以将JSON格式的字符串转换为PHP数组。json_decode()函数接收两个参数,第一个参数是要转换的JSON格式的字符串,第二个参数是一个布尔值,如果该参数设置为true,则将将JSON解码为关联数组,如果该参数为false,则返回一个对象。默认情况下该参数为false。
下面是一个使用json_decode()函数将JSON转换为数组的例子:
$jsonStr = '{"name":"Jack","age":20}';$arr = json_decode($jsonStr, true);print_r($arr);
登录后复制
以上代码将输出一个以键值对表示的数组:
Array( [name] => Jack [age] => 20)
登录后复制JSON转换为对象
如果不指定json_decode()函数的第二个参数,则将返回一个PHP对象。使用json_decode()函数将JSON格式的字符串转换为PHP对象非常简单,只需要传入JSON格式字符串即可。
立即学习“PHP免费学习笔记(深入)”;
下面是一个将JSON格式字符串转为PHP对象的例子:
$jsonStr = '{"name":"Jack","age":20}';$obj = json_decode($jsonStr);var_dump($obj);
登录后复制
以上代码将输出一个PHP对象:
object(stdClass)#1 (2) { ["name"]=> string(4) "Jack" ["age"]=> int(20)}
登录后复制数组转换为JSON字符串
使用PHP内置的json_encode()函数可以将PHP数组转化为JSON字符串。json_encode()函数接收一个参数,即要转换的PHP数组,在将PHP数组转换为JSON字符串时,json_encode()函数会自动将键值对转换为JSON字符串中的键值对。
下面是一个将PHP数组转换为JSON字符串的例子:
$arr = array("name"=>"Jack", "age"=>20);$jsonStr = json_encode($arr);echo $jsonStr;
登录后复制
以上代码将输出以下JSON格式的字符串:
{"name":"Jack","age":20}
登录后复制对象转换为JSON字符串
用内置的json_encode()函数将PHP对象转化为JSON字符串也很简单。在转换前,需要使用json_encode()函数的另一个参数,即JSON_PRETTY_PRINT常量,它用于设置将JSON字符串格式化为易于阅读且更人类友好的格式。
下面是一个将PHP对象转换为JSON字符串的例子:
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; }}$person = new Person("Jack", 20);$jsonStr = json_encode($person, JSON_PRETTY_PRINT);echo $jsonStr;
登录后复制
以上代码将输出以下易于阅读的JSON格式的字符串:
{ "name": "Jack", "age": 20}
登录后复制数组对象互相转换
将一个包含多个对象的数组转换为JSON格式的字符串,可以使用json_encode()函数。而将JSON格式的字符串转换回PHP数组对象,可以使用json_decode()函数。下面是一个将包含多个对象的数组转换成JSON格式的例子:
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; }}$person1 = new Person("Jack", 20);$person2 = new Person("Tom", 25);$person3 = new Person("Lucy", 18);$arr = array($person1, $person2, $person3);$jsonStr = json_encode($arr, JSON_PRETTY_PRINT);echo $jsonStr;
登录后复制
以上代码将输出以下JSON格式的字符串:
[ { "name": "Jack", "age": 20 }, { "name": "Tom", "age": 25 }, { "name": "Lucy", "age": 18 }]
登录后复制
接下来将这个包含多个对象的JSON格式的字符串转换回PHP数组对象:
$jsonStr = '[{"name":"Jack","age":20},{"name":"Tom","age":25},{"name":"Lucy","age":18}]';$arr = json_decode($jsonStr);print_r($arr);
登录后复制
运行以上代码,将输出以下PHP数组对象:
Array( [0] => stdClass Object ( [name] => Jack [age] => 20 ) [1] => stdClass Object ( [name] => Tom [age] => 25 ) [2] => stdClass Object ( [name] => Lucy [age] => 18 ))
登录后复制
由于使用json_decode()函数的第二个参数没有指定,所以将返回一个PHP对象数组。如果要将JSON解码为PHP关联数组,则需要将第二个参数设置为true。
在这篇文章中,我们介绍了如何在PHP中将JSON格式的字符串转换为数组或对象,并进一步将数组或对象转换为JSON字符串。学习这些功能可以帮助您更轻松地处理Web应用程序中的JSON数据。
以上就是php json怎么转换数组对象的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2014349.html