Home>Article>Backend Development> How to convert php json string to object

How to convert php json string to object

藏色散人
藏色散人 Original
2020-07-03 10:32:38 2753browse

php json string conversion method: 1. Use "json_decode" to encode the string in JSON format; 2. Accept a string in JSON format and convert it into a PHP variable.

How to convert php json string to object

php json string to array or object

The method found on the Internet is to use get_object_vars Convert the class type into an array and then use foreach to traverse it

$array = get_object_vars($test); $json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';

First use json_decode to encode the string in JSON format,

$students = json_decode($json);

Use $students directly in the PHP file:

for($i=0;$i"; }

The error is reported as follows:

Fatal error: Cannot use objectof type stdClass as array inD:\wamp\www\test.phpon line18

At this time, print $students:

var_dump($students);

will output:

array(2) { [0]=> object(stdClass)#2 (4) { ["id"]=> string(1)"1" ["name"]=> string(9)"张雪梅" ["age"]=> string(2)"27" object(stdClass)#3 (4) { 这个就说明转换的json字符串转为对象而非数组,请看下面的红色背景字 ["subject"]=>string(24) "计算机科学与技术" } [1]=> ["id"]=> string(1)"2" ["name"]=> string(9)"张沛霖" ["age"]=> string(2)"21" ["subject"]=> string(12) "软件工程" } }

It can be seen that the returned result is object instead of array. Should be accessed in object form:

foreach($students as $obj){ echo "姓名:".$obj->name."年龄:".$obj->age."专业:".$obj->subject."
"; }

The output result is:

姓名:张雪梅 年龄:27 专业:计算机科学与技术 姓名:张沛霖 年龄:21 专业:软件工程

mixedjson_decode ( string$json [, bool$assoc ] )

Description : Accepts a JSON-formatted string and converts it into a PHP variable.

json_decode 可接收两个参数: json:待解码的jsonstring 格式的字符串。

assoc: When this parameter is TRUE, an array will be returned instead of an object.

$students = json_decode($json,true);

Print $students at this time:

var_dump($students);

Output:

array(2) { [0]=> array(4) { ["id"]=> string(1)"1" ["name"]=> string(9)"张雪梅" ["age"]=> string(2)"27" ["subject"]=>string(24) "计算机科学与技术" } [1]=> array(4) { ["id"]=> string(1)"2" ["name"]=> string(9)"张沛霖" ["age"]=> string(2)"21" ["subject"]=>string(12) "软件工程" } }

At this time, $students is an array and can be used directly:

for($i=0;$i"; }

The output result is:

姓名:张雪梅 年龄:27 专业:计算机科学与技术 姓名:张沛霖 年龄:21 专业:软件工程

Summary:

Two ways to process JSON format strings in PHP code:

Method one:

$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]'; $students= json_decode($json);//得到的是 object foreach($studentsas $obj){ echo "姓名:".$obj->name." 年 龄:".$obj->age." 专 业:".$obj->subject."
";}

Method two:

$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]'; $students= json_decode($json, true);//得到的是 array for($i=0;$i";

------ -------------------------------------------------- -------------------------------------------------- -----------------------

Recommended: "PHP Tutorial"

The above is the detailed content of How to convert php json string to object. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn