Home  >  Article  >  Backend Development  >  php json to array function

php json to array function

王林
王林Original
2023-05-05 21:25:06442browse

In PHP, we often need to convert JSON to an array for processing. Since the JSON format is relatively concise and easy to understand, it has become a common format for transmitting data between the front and back ends. Therefore, in PHP, there are some functions that can help us convert JSON into an array.

This article will introduce several JSON to array functions commonly used in PHP.

  1. json_decode()

json_decode() function is the basic function in PHP used to convert JSON strings into PHP arrays or objects. Its syntax is as follows:

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

Where:

  • $json: JSON string that needs to be converted.
  • $assoc: If this parameter is TRUE, an array is returned; if it is FALSE, an Object object is returned.
  • $depth: Specifies the maximum depth, used to control the depth of recursive calls. The default value is 512.
  • $options: JSON encoding options, you can specify the converted format.

Sample code:

$json_str = '{"name":"Tom","age":20,"hobby":["reading","writing"]}';
$arr = json_decode($json_str, TRUE);
print_r($arr);

Output result:

Array
(
    [name] => Tom
    [age] => 20
    [hobby] => Array
        (
            [0] => reading
            [1] => writing
        )
)

Through the json_decode() function, we successfully converted the JSON string into an array.

  1. json_decode() is used in combination with JSON_THROW_ON_ERROR

In PHP 7.3 and above, we can use the JSON_THROW_ON_ERROR option to let the json_decode() function throw when a conversion error occurs abnormal. The sample code is as follows:

$json_str = '{"name":"Tom","age":20,"hobby:["reading","writing"]}';
try {
    $arr = json_decode($json_str, TRUE, 512, JSON_THROW_ON_ERROR);
    print_r($arr);
} catch (JsonException $e) {
    echo 'JSON错误:' . $e->getMessage();
}

Output result:

JSON错误:Syntax error

In this example, due to the incorrect format of the JSON string, the json_decode() function threw an exception and prompted an error message.

  1. json_last_error_msg()

When using the json_decode() function to convert a JSON string, sometimes there will be parsing errors. At this time we can use the json_last_error_msg() function to get the error information. The sample code is as follows:

$json_str = '{"name":"Tom","age":20,"hobby":["reading","writing"';
$arr = json_decode($json_str, TRUE);
if (json_last_error() === JSON_ERROR_NONE) {
    print_r($arr);
} else {
    echo 'JSON错误:' . json_last_error_msg();
}

Output result:

JSON错误:Syntax error

In this example, json_last_error_msg() returned error information due to an incorrect string format.

  1. json_encode()

In PHP, we can also convert PHP arrays to JSON format strings, which requires the use of the json_encode() function. Its syntax is as follows:

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

Where:

  • $value: PHP variable that needs to be converted to JSON format.
  • $options: Optional. JSON encoding options.
  • $depth: optional. Specify the maximum depth. The default value is 512.

The sample code is as follows:

$arr = array('name' => 'Tom', 'age' => 20, 'hobby' => array('reading', 'writing'));
$json_str = json_encode($arr, JSON_UNESCAPED_UNICODE);
echo $json_str;

Output result:

{"name":"Tom","age":20,"hobby":["reading","writing"]}

Through the json_encode() function, we successfully converted the PHP array into a JSON string.

Summary:

In PHP, we can use the json_decode() function to convert a JSON string into an array or object, and we can also use the json_encode() function to convert a PHP array into JSON format. String. Under normal circumstances, you can use the default options. If necessary, you can use related options to configure. When parsing or encoding JSON, we can also use related functions to obtain error information for better processing.

The above is the detailed content of php json to array function. 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