Home >Backend Development >PHP Problem >How to convert php json into object
php Method to convert json into an object: 1. Use json_decode to encode the string in JSON format; 2. Access it through "foreach($students as $obj){...}".
The operating environment of this article: Windows7 system, PHP7.1 version, Dell G3 computer
How to convert php json into an object?
php json string to array or object
The method found on the Internet is to use get_object_vars to convert the class type into an array and then use foreach to traverse That's 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 JSON format string,
$students = json_decode($json);
Use $students directly in the PHP file:
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']."年龄:".$students[$i]['age']."专业:".$students[$i]['subject']."<br/>"; }
The error will be reported as follows:
Fatal error: Cannot use objectof type stdClass as array in D:\wamp\www\test.phpon line 18
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."<br/>"; }
The output result is:
Name: Zhang Xuemei Age: 27 Major: Computer Science and Technology
Name: Zhang Peilin Age: 21 Major: Software Engineering
mixedjson_decode ( string$json [, bool$assoc ] )
Description: Accept a JSON format string and convert it to PHP variable.
json_decode can receive two parameters:
json: the string in jsonstring format to be decoded.
assoc: When this parameter is TRUE, an array will be returned instead of an object.
$students = json_decode($json,true);
At this time, print $students:
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 Array, you can use it directly:
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']."年龄:".$students[$i]['age']."专业:".$students[$i]['subject']."<br/>"; }
The output result is:
Name: Zhang Xuemei Age: 27 Major: Computer Science and Technology
Name: Zhang Peilin Age: 21 Major: Software Engineering
Summary:
Two methods to process JSON formatted strings in PHP code:
Method 1:
$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."<br />"; }
Method 2:
$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<count($students);$i++){ echo "姓名:".$students[$i]['name']." 年 龄:".$students[$i]['age']." 专 业:".$students[$i]['subject']."<br />";
Recommended learning: "PHP Video Tutorial"
------------- -------------------------------------------------- -------------------------------------------------- ----------------
The above is the detailed content of How to convert php json into object. For more information, please follow other related articles on the PHP Chinese website!