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 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!