Home > Article > Backend Development > Manipulate JSON data with PHP
JSON is a lightweight text data exchange format. It is smaller, faster, and easier to parse than XML. Therefore, during the PHP development process, we often use it to transfer data. In this article, UncleToo will introduce how to use PHP. Manipulating JSON data
PHP is generally used more often in AJAX to manipulate JSON data. You can pass JSON format data to AJAX, or you can parse the JSON data returned by AJAX into the strings we need. In PHP, you can use the json_decode() function to parse JSON format data, and use the json_encode() function to generate a string (array) into JSON format.
Look at the example first:
Example 1:
Php code
<?php $json = '{"a":1, "b":2, "c":3, "d":4, "e":5 }'; var_dump(json_decode($json)); echo "<br/>"; var_dump(json_decode($json,true)); ?>
Output:
object(stdClass)#1 (5) { ["a"]=> int(1) ["b" ]=> int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int(5) }
array(5 ) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int(5) }
Example 2:
Php code
<?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>
Output:
{"a":1,"b":2,"c": 3,"d":4,"e":5}
From Example 1, we can see that the json_decode function can be used to convert JSON data into an array. However, if JSON data is nested in JSON data, Then you can't write it directly like this. You need to use a custom function to convert the nested JSON data into an array.
Example:
Php code
<?php function json_to_array($web){ $arr=array(); foreach($web as $k=>$w){ if(is_object($w)) $arr[$k]=json_to_array($w); //判断类型是不是object else $arr[$k]=$w; } return $arr; } ?>
Calling example:
Php code
<?php $s='{"webname":"UncleToo","url":"www.uncletoo.com","menu":{"PHP":"1","DataBase":"2","Web":"3"}}'; $web=json_decode($s); $arr=json_to_array($web); print_r($arr); ?>
Output:
Array ( [webname] => UncleToo [url] => www.uncletoo.com [ menu] => Array ( [PHP] => 1 [DataBase] => 2 [Web] => 3 ) )
The above are the common methods for operating JSON data in PHP. If you have other ideas and methods, you can Discuss with UncleToo.