Home  >  Article  >  Backend Development  >  PHP Array to JSON Conversion: FAQ

PHP Array to JSON Conversion: FAQ

WBOY
WBOYOriginal
2024-05-03 08:12:02955browse

In PHP, you can convert between arrays and JSON through the following steps: Convert array to JSON: Use the json_encode() function. Convert JSON to an array: Use the json_decode() function, specifying the true parameter to return an array. Handling special characters: json_encode() will automatically escape special characters, but you still need to pay attention after manual escaping. Handling Unicode characters: Use the JSON_UNESCAPED_UNICODE flag to enable Unicode escaping. Handling circular references: Enabling the JSON_PARTIAL_OUTPUT_ON_ERROR flag allows partial JSON output to be returned when a circular reference is encountered.

PHP 数组与 JSON 转换:常见问题解答

PHP Array to JSON Conversion: FAQ

In PHP, Arrays and JSON (JavaScript Object Notation) are Two common data structures widely used to store and transfer data. In this article, we explore common complex issues when converting between arrays and JSON and provide code examples to illustrate solutions.

Question 1: Convert Array to JSON

Code:

$array = ['name' => 'John Doe', 'age' => 30];
$json = json_encode($array);

Question 2: Convert JSON For array

Code:

$json = '{"name": "John Doe", "age": 30}';
$array = json_decode($json, true);

Note: If the true parameter is omitted, json_decode Will return an object, not an array.

Question 3: Handling special characters

Special characters (such as quotes, backslashes) in PHP need to be escaped in JSON. The json_encode function performs this conversion automatically, but you need to be careful if you manually escape the array before conversion.

Code:

$array = ['name' => 'John"Doe'];
$json = json_encode($array);  // 结果:{"name": "John\"Doe"}

Question 4: Handling Unicode characters

Unicode characters need to be hexadecimal in JSON Escape sequence representation. json_encode The function does not perform this conversion by default. To enable Unicode escaping, use the JSON_UNESCAPED_UNICODE flag.

Code:

$array = ['name' => '王小明'];
$json = json_encode($array, JSON_UNESCAPED_UNICODE);  // 结果:{"name": "\u738b\u5c0f\u660e"}

Question 5: Handling circular references

Circular references in nested data structures result in JSON Conversion failed. To resolve this issue, you can enable the JSON_PARTIAL_OUTPUT_ON_ERROR flag to cause json_encode to return partial JSON output when a circular reference is encountered.

Code:

$array = ['name' => 'John Doe'];
$array['self'] = &$array;
$json = json_encode($array, JSON_PARTIAL_OUTPUT_ON_ERROR);  // 仅输出部分 JSON 数据

Practical case

The following is to convert user information from a PHP array to JSON and display it on the HTML page Actual case shown in:

<?php
$user = ['name' => 'John Doe', 'age' => 30, 'address' => '123 Main Street'];
$json = json_encode($user);
?>

<html>
<head><title>用户信息</title></head>
<body>
<h1><?php echo $user['name']; ?></h1>
<p>年龄:<?php echo $user['age']; ?></p>
<p>地址:<?php echo $user['address']; ?></p>
</body>
</html>

The above is the detailed content of PHP Array to JSON Conversion: FAQ. 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