Home>Article>Backend Development> How to convert php json string to object
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.
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!