Home  >  Article  >  Backend Development  >  How to convert json string to array in php

How to convert json string to array in php

PHPz
PHPzOriginal
2023-04-20 10:12:38391browse

In PHP, it is often necessary to convert JSON format data into an array usable by PHP. This process is usually called JSON parsing. In PHP, there are many ways to parse JSON, but PHP comes with a very convenient function json_decode(), which can help us quickly convert JSON-formatted strings into arrays or objects in PHP.

  1. json_decode() function introduction

The json_decode() function is a function provided by the PHP function library for parsing data in JSON format. The function declaration is as follows:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Among them, $json is the JSON format data that needs to be parsed, and $assoc indicates whether to convert the JSON data into a PHP associative array. The parameter $depth defines the maximum depth of parsing JSON data, and $options can set parsing options.

  1. Convert JSON format data to PHP array

The method to convert JSON format data to PHP array is very simple, just add $assoc in the json_decode() function Just set the parameter to true. For example, the following is a simple JSON format data:

$jsonStr = '{"name":"Li Lei","age":20,"gender":"male","address":{ "province":"Shandong","city":"Qingdao","district":"Sifang District"}}';
$arr ​​= json_decode($jsonStr, true);

above In the code, we set the $assoc parameter to true to convert the JSON data into a PHP associative array. The variable $arr is the PHP array after the JSON data we need. Now the members in $arr can be obtained through array subscripts, such as $arr['name'], $arr['age'], $arr'address' and so on.

  1. Convert JSON format data to PHP objects

If you want to convert JSON format data to PHP objects, you can set the $assoc parameter in the json_decode() function to false or not set. For example, the following is a simple JSON format data:

$jsonStr = '{"name":"Li Lei","age":20,"gender":"male","address":{ "province":"Shandong","city":"Qingdao","district":"Sifang District"}}';

$obj = json_decode($jsonStr);

at In the above code, the $assoc parameter is not set to true, and the json_decode() function returns a PHP object. Now use $obj->name, $obj->age, $obj->address->province and other similar syntax to obtain the data in the PHP object after JSON data conversion.

  1. Common mistakes in parsing JSON format data

When parsing JSON format data, we often encounter the problem that the data obtained from the API cannot be successfully converted. This Usually there are the following reasons:

4.1 JSON format error

It may be that the json_decode() function cannot parse the JSON format data. At this time, you can use a tool like this JSONLint for online inspection and verify.

4.2 Data processing errors

Sometimes the obtained JSON data needs some processing to be successfully converted. For example, the JSON data contains comments and is not UTF-8 encoded, etc. In this case, it is necessary Do some data processing and then parse.

4.3 Undefined/unknown elements

In PHP arrays and objects, if you try to use non-existent keywords or object attribute names, the program will report an error, so you need to ensure that when parsing JSON data Data integrity.

  1. Summary

In PHP, JSON format data can be easily converted into PHP arrays or objects through the json_decode() function. Various errors often occur in JSON format data. Therefore, when parsing JSON data, it is necessary to ensure the integrity of the data and handle errors in a timely manner.

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

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