When using PHP for web development, we often deal with JSON data. If the data we receive is JSON data in the form of a string, then we need to convert it into an object or array in PHP for subsequent processing. In this article, we will discuss how to convert JSON data in the form of strings to objects or arrays.
1. Convert a string to a JSON object
First, we need to use the json_decode()
function in PHP to convert a JSON string to a JSON object. The syntax of this function is as follows:
json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0): mixed
Among them, the $json
parameter indicates the JSON string that needs to be converted; the $assoc
parameter indicates whether to convert the converted JSON object. It is in the form of an array; the $depth
parameter represents the maximum recursion depth; the $options
parameter represents the options during conversion.
The sample code is as follows:
$json_string = '{"name":"张三","age":18}'; $json_obj = json_decode($json_string); var_dump($json_obj);
Output result:
object(stdClass)#1 (2) { ["name"]=> string(6) "张三" ["age"]=> int(18) }
As mentioned above, use the json_decode()
function to convert the JSON string into a JSON object , returns the stdClass
object in PHP.
2. Convert the string to a JSON array
If we need to convert the JSON string to an array in PHP, we can set the $assoc
parameter to true
. The sample code is as follows:
$json_string = '[{"name":"张三","age":18},{"name":"李四","age":20}]'; $json_arr = json_decode($json_string, true); var_dump($json_arr);
Output result:
array(2) { [0]=> array(2) { ["name"]=> string(6) "张三" ["age"]=> int(18) } [1]=> array(2) { ["name"]=> string(6) "李四" ["age"]=> int(20) } }
As can be seen from the above example, after conversion, the data is originally a JSON object, such as {"name":" Zhang San", "age":18}
, is converted into an array form in PHP, such as ["name" => "Zhang San", "age" => 18]
.
3. Convert a string to an array of JSON objects
In practical applications, we may need to convert a JSON string composed of multiple JSON objects into an array of objects in PHP.
The sample code is as follows:
$json_string = '[{"name":"张三","age":18},{"name":"李四","age":20}]'; $json_obj_arr = json_decode($json_string); var_dump($json_obj_arr);
Output result:
array(2) { [0]=> object(stdClass)#2 (2) { ["name"]=> string(6) "张三" ["age"]=> int(18) } [1]=> object(stdClass)#3 (2) { ["name"]=> string(6) "李四" ["age"]=> int(20) } }
Compared with converting a JSON string to an array, converting it to an object array is a more complicated operation. In this sample code, the json_decode()
function is used to convert a string to an array of JSON objects. The return result is an array consisting of multiple stdClass
objects.
To sum up, processing JSON data is an essential part of the web development process. Through the introduction of this article, you have learned how to convert a JSON string to an object or array in PHP, and how to convert a JSON string consisting of multiple objects to an array of objects in PHP.
The above is the detailed content of How to convert json string to array or object in php. For more information, please follow other related articles on the PHP Chinese website!