How to convert php json string to array

藏色散人
Release: 2023-03-06 12:44:02
Original
3456 people have browsed it

php How to convert json string to array: First use the "json_decode" function to encode the string in JSON format; then print "$students" through the "var_dump($students);" method.

How to convert php json string to array

Recommended: "PHP Video Tutorial"

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 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"}]';
Copy after login

First, use json_decode to encode the string in JSON format,

$students = json_decode($json);
Copy after login

Use $students directly in the PHP file:

for($i=0;$i<count($students);$i++){
         echo "姓名:".$students[$i][&#39;name&#39;]."年龄:".$students[$i][&#39;age&#39;]."专业:".$students[$i][&#39;subject&#39;]."<br/>";
    }
Copy after login

, the error will be reported as follows:

Fatal error
: Cannot use objectof type stdClass as array in 
D:\wamp\www\test.php
on line 
18
Copy after login

At this time, print $students:

var_dump($students);
Copy after login
Copy after login

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字符串转为对象而非数组,请看下面的红色背景字
Copy after login
["subject"]=>string(24) "计算机科学与技术"
        }
        [1]=>
            ["id"]=> string(1)"2"
            ["name"]=> string(9)"张沛霖"
            ["age"]=> string(2)"21"
           ["subject"]=> string(12) "软件工程"
        }
    }
Copy after login

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/>";
    }
Copy after login

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 Convert 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);
Copy after login

Print $students at this time:

var_dump($students);
Copy after login
Copy after login

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) "软件工程"
        }
    }
Copy after login

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

for($i=0;$i<count($students);$i++){
     echo "姓名:".$students[$i][&#39;name&#39;]."年龄:".$students[$i][&#39;age&#39;]."专业:".$students[$i][&#39;subject&#39;]."<br/>";
}
Copy after login

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 one:

$json= &#39;[{"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"}]&#39;;
$students= json_decode($json);//得到的是 object
foreach($studentsas $obj){
    echo "姓名:".$obj->name."   年 龄:".$obj->age."   专 业:".$obj->subject."<br />";}
Copy after login

Method two:

$json= &#39;[{"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"}]&#39;;
$students= json_decode($json, true);//得到的是 array
for($i=0;$i<count($students);$i++){    echo "姓名:".$students[$i][&#39;name&#39;]."   年 龄:".$students[$i][&#39;age&#39;]."   专 业:".$students[$i][&#39;subject&#39;]."<br />";
Copy after login

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

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

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template