With the continuous development of Internet technology, data interaction has become an important part of Internet application development. In Web development, "data interaction" is particularly important. Data format conversion is also frequently used in web application development.
In data interaction, JSON is a very popular data format through which data objects or arrays can be passed to websites or applications. PHP is a strongly typed interpreted scripting language. Compared with other languages, PHP is more convenient to parse and use JSON format. In PHP development, it is also a very common requirement to convert a JSON-formatted string into an array or object. Then this article will introduce how to quickly convert JSON objects into arrays or object arrays.
JSON is the abbreviation of JavaScript Object Notation, which is a lightweight data exchange format. JSON is a language for exchanging data. It is a structure of key-value pairs that uses human-readable text to transmit data.
The following is a simple JSON example.
{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }
The data in JSON format is enclosed by curly braces, and the data exists in the form of key-value pairs, separated by colons. For a JSON object, its key must be a string, with key-value pairs separated by commas. In the above example, name
, age
and address
are three keys, and the corresponding values are "bob"
,# respectively. ##25 and another JSON object.
json_encode() and
json_decode().
: Convert PHP array or object to JSON string.
: Convert a JSON format string into a PHP array or object.
json_encode() to convert a PHP array into a JSON format string.
$myArr = array('name' => 'Bob', 'age' => 25, 'address' => array('city' => 'beijing', 'province' => 'BJ')); $jsonStr = json_encode($myArr); echo $jsonStr; // 输出 {"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}
json_decode() function to convert a JSON format string into a PHP array.
$jsonStr = '{"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}'; $myArr = json_decode($jsonStr, true); print_r($myArr); // Array ( [name] => Bob [age] => 25 [address] => Array ( [city] => beijing [province] => BJ ) )
json_decode() function is a PHP array. If you want a PHP object, you can omit the second parameter, and the PHP object will be returned. As shown below:
$jsonStr = '{"name":"Bob","age":25,"address":{"city":"beijing","province":"BJ"}}'; $myObj = json_decode($jsonStr); echo $myObj->name; // 输出 Bob echo $myObj->address->province; // 输出 BJ
json_decode() function can also solve this problem, but you need to pass in the second parameter.
$jsonStr = '{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }'; $jsonObj = json_decode($jsonStr, true); print_r($jsonObj);
Array ( [name] => bob [age] => 25 [address] => Array ( [city] => beijing [province] => BJ ) )
json_decode() function is set to
true, which means that JSON The object is converted into a PHP array.
$jsonStr = '{ "name": "bob", "age": 25, "address": { "city": "beijing", "province": "BJ" } }'; $jsonObj = json_decode($jsonStr); $jsonArr = (array)$jsonObj; print_r($jsonArr);
Array ( [name] => bob [age] => 25 [address] => stdClass Object ( [city] => beijing [province] => BJ ) )
stdClass object in the output result into a PHP array. At this time, the problem can be solved using loop recursion. In order to avoid this problem, it is generally recommended to use the
json_decode() function to convert the JSON object into a PHP array.
json_decode() and loop recursion.
$jsonStr = '{ "name": "Bob", "age": 25, "address": {"city": "beijing", "province": "BJ"} }'; $jsonObj = json_decode($jsonStr); $objArr = array(); foreach ($jsonObj as $key => $value) { if (is_object($value)) { $objArr[$key] = $this->getJSONObj($value); } else if (is_array($value)) { $arr = array(); foreach ($value as $item) { if (is_object($item)) { array_push($arr, $this->getJSONObj($item)); } else { array_push($arr, $item); } } $objArr[$key] = $arr; } else { $objArr[$key] = $value; } } var_dump($objArr);
getJSONObj() function here converts the JSON object into an array of PHP objects and returns it.
array_map() function and anonymous function to convert JSON objects into PHP objects Array, the code is as follows:
$jsonStr = '{ "name": "Bob", "age": 25, "address": {"city": "beijing", "province": "BJ"} }'; $jsonObj = json_decode($jsonStr); $objArr = (array)$jsonObj; $objArr = array_map(function ($item) { if (is_object($item)) { return $this->getJSONObj($item); } elseif (is_array($item)) { return array_map(function ($sub_item) { return (is_object($sub_item)) ? $this->getJSONObj($sub_item) : $sub_item; }, $item); } else { return $item; } }, $objArr); var_dump($objArr);
json_encode() and
json_decode() functions are very useful tools. There are many methods to choose from to convert JSON objects into PHP arrays or object arrays. Readers can choose the most appropriate method for implementation based on actual development needs.
The above is the detailed content of How to quickly convert JSON objects to arrays or object arrays in php. For more information, please follow other related articles on the PHP Chinese website!