Dalam PHP, anda boleh menukar antara tatasusunan dan JSON dengan mengikuti langkah berikut: Tukar tatasusunan kepada JSON: Gunakan fungsi json_encode(). Tukar JSON kepada tatasusunan: Gunakan fungsi json_decode(), menentukan hujah yang benar untuk mengembalikan tatasusunan. Mengendalikan aksara khas: json_encode() akan melarikan diri secara automatik daripada aksara khas, tetapi anda masih perlu memberi perhatian selepas melarikan diri secara manual. Mengendalikan aksara Unikod: Gunakan bendera JSON_UNESCAPED_UNICODE untuk mendayakan Unicode melarikan diri. Mengendalikan rujukan pekeliling: Mendayakan bendera JSON_PARTIAL_OUTPUT_ON_ERROR membolehkan output JSON separa dikembalikan apabila rujukan bulat ditemui.
Penukaran Tatasusunan PHP ke JSON: FAQ
Dalam PHP, tatasusunan dan JSON (Notasi Objek JavaScript) ialah dua struktur data biasa yang digunakan secara meluas untuk menyimpan dan memindahkan data. Dalam artikel ini, kami akan meneroka isu kompleks biasa apabila menukar antara tatasusunan dan JSON dan menyediakan contoh kod untuk menggambarkan penyelesaian.
Soalan 1: Tukar Array kepada JSON
Kod:
$array = ['name' => 'John Doe', 'age' => 30]; $json = json_encode($array);
Soalan 2: Tukar JSON kepada Array
Kod:
Kod semula: >benar< Jika Parameter /code> ditinggalkan, json_decode
akan mengembalikan objek dan bukannya tatasusunan. true
参数省略,则 json_decode
将返回一个对象,而不是数组。
问题 3:处理特殊字符
PHP 中的特殊字符(如引号、反斜杠)在 JSON 中需要进行转义。json_encode
函数自动执行此转换,但如果在转换前对数组手动进行转义则需要注意。
代码:
$json = '{"name": "John Doe", "age": 30}'; $array = json_decode($json, true);
问题 4:处理 Unicode 字符
Unicode 字符在 JSON 中需要使用十六进制转义序列表示。json_encode
函数默认不会执行此转换。要启用 Unicode 转义,请使用 JSON_UNESCAPED_UNICODE
标志。
代码:
$array = ['name' => 'John"Doe']; $json = json_encode($array); // 结果:{"name": "John\"Doe"}
问题 5:处理循环引用
嵌套数据结构中的循环引用会导致 JSON 转换失败。要解决此问题,可以启用 JSON_PARTIAL_OUTPUT_ON_ERROR
标志,使 json_encode
Soalan 3: Mengendalikan aksara khas
Watak khas (seperti petikan, garis miring ke belakang) dalam PHP perlu dilepaskan dalam JSON. Fungsi json_encode
melakukan penukaran ini secara automatik, tetapi anda perlu berhati-hati jika anda melarikan diri secara manual daripada tatasusunan sebelum penukaran.
Kod:
$array = ['name' => '王小明']; $json = json_encode($array, JSON_UNESCAPED_UNICODE); // 结果:{"name": "\u738b\u5c0f\u660e"}
Soalan 4: Mengendalikan aksara Unikod
🎜🎜Aksara Unikod perlu diwakili dalam JSON menggunakan urutan pelarian heksadesimal. Fungsijson_encode
tidak melakukan penukaran ini secara lalai. Untuk mendayakan Unicode melarikan diri, gunakan bendera JSON_UNESCAPED_UNICODE
. 🎜🎜🎜Kod: 🎜🎜$array = ['name' => 'John Doe']; $array['self'] = &$array; $json = json_encode($array, JSON_PARTIAL_OUTPUT_ON_ERROR); // 仅输出部分 JSON 数据
JSON_PARTIAL_OUTPUT_ON_ERROR
supaya json_encode
mengembalikan sebahagian output JSON apabila rujukan bulat ditemui. 🎜🎜🎜Kod:🎜🎜<?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>
Atas ialah kandungan terperinci Tatasusunan PHP kepada Penukaran JSON: Soalan Lazim. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!