Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan untuk penghuraian dan penjanaan JSON dalam PHP

Panduan untuk penghuraian dan penjanaan JSON dalam PHP

WBOY
WBOYasal
2023-06-11 10:57:102313semak imbas

Dengan pembangunan berterusan dan aplikasi teknologi Internet, interaksi data bahagian hadapan dan belakang telah menjadi bahagian penting dalam pembangunan Web. Sebagai format pertukaran data yang ringan, JSON telah menjadi salah satu pilihan yang paling popular. Sebagai bahasa penting dalam bidang pembangunan web, PHP juga menyediakan perpustakaan fungsi pemprosesan JSON yang lengkap, jadi pembangun boleh menghuraikan dan menjana data JSON dengan mudah. Artikel ini akan memperkenalkan cara menghuraikan dan menjana JSON dalam PHP.

1. Konsep asas JSON

JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang menerangkan struktur data dalam format teks yang ringkas. JSON menggunakan pasangan nilai kunci untuk mewakili data dan menyokong jenis data asas, tatasusunan, objek dan struktur data lain. Sintaksnya sangat serupa dengan literal objek JavaScript kerana JSON berasal daripada literal objek JavaScript.

Berikut ialah contoh JSON yang mudah:

{
    "name": "Jack",
    "age": 22,
    "address": {
        "province": "Guangdong",
        "city": "Shenzhen"
    },
    "hobby": ["reading", "music"]
}

Contoh di atas mengandungi objek yang mengandungi empat pasangan nilai kunci. Antaranya, name dan age ialah jenis data asas, address ialah objek dan hobby ialah tatasusunan. Seperti yang anda lihat, format data JSON sangat ringkas dan jelas.

2. Menghuraikan data JSON

PHP menyediakan fungsi json_decode() untuk menghuraikan data JSON. Parameter fungsi ini ialah rentetan dalam format JSON dan nilai pulangan ialah objek atau tatasusunan. Jika penghuraian gagal, NULL dikembalikan.

Berikut ialah penggunaan asas fungsi json_decode():

$jsonStr = '{"name":"Jack","age":22}';
$jsonObj = json_decode($jsonStr);
echo $jsonObj->name; // 输出 Jack
echo $jsonObj->age; // 输出 22

Dalam contoh di atas, rentetan berformat JSON $jsonStr pertama kali ditakrifkan, yang mewakili rentetan yang mengandungi name dan ageObjek pasangan nilai kunci. Seterusnya, gunakan fungsi json_decode() untuk menghuraikan $jsonStr ke dalam objek $jsonObj. Akhir sekali, nilai $jsonObj dan name diakses melalui age objek dan output.

Apabila data JSON mengandungi tatasusunan atau struktur bersarang yang lebih dalam, fungsi json_decode() boleh menghuraikannya secara automatik ke dalam tatasusunan berbilang dimensi. Berikut ialah contoh JSON yang mengandungi tatasusunan dan objek:

$jsonStr = '{
  "name": "Jack",
  "friends": [
    {
      "name": "Tom",
      "age": 22
    }, 
    {
      "name": "Jerry",
      "age": 23
    }
  ]
}';
$jsonArr = json_decode($jsonStr, true);
echo $jsonArr['friends'][0]['name']; // 输出 Tom

Dalam contoh di atas, memandangkan parameter kedua ditetapkan kepada true, json_decode() mengembalikan tatasusunan bersekutu dan bukannya objek. Data dalam $jsonArr boleh diakses melalui pengindeksan tatasusunan berbilang dimensi.

3. Hasilkan data JSON

PHP juga menyediakan fungsi json_encode() untuk menukar objek atau tatasusunan kepada rentetan JSON, yang boleh digunakan terus untuk data bahagian hadapan dan belakang interaksi.

Berikut ialah penggunaan asas fungsi json_encode():

$data = [
  'name' => 'Tom',
  'age' => 22
];
echo json_encode($data); // 输出 {"name":"Tom","age":22}

Dalam contoh di atas, mula-mula tentukan tatasusunan bersekutu yang mengandungi dua pasangan nilai kunci name dan age $data. Seterusnya, gunakan fungsi json_encode() untuk menukar $data menjadi rentetan JSON dan mengeluarkannya.

Perlu diambil perhatian bahawa apabila objek dan tatasusunan PHP ditukar kepada rentetan JSON, bahasa Cina akan terlepas ke pengekodan Unicode secara lalai Anda boleh mengelakkan pelarian bahasa Cina dengan menetapkan pemalar JSON_UNESCAPED_UNICODE. Pada masa yang sama, anda juga boleh menetapkan simbol lekukan dan ruang format output.

Berikut ialah parameter pilihan biasa bagi fungsi json_encode():

  • JSON_PRETTY_PRINT menjadikan format output diinden dan menjadikan penulisan lebih mesra.
  • JSON_UNESCAPED_UNICODE tidak terlepas daripada aksara Cina.
  • JSON_UNESCAPED_SLASHES Jangan terlepas daripada tebasan.
  • JSON_NUMERIC_CHECK Tukar nombor jenis rentetan kepada jenis angka.
  • JSON_FORCE_OBJECT Tukar tatasusunan kepada output objek, memastikan objek yang dikembalikan mestilah dalam bentuk objek.

Parameter di atas boleh digunakan secara gabungan, seperti:

$data = [
  'name' => 'Tom',
  'age' => 22
];
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

Dalam contoh di atas, dua parameter JSON_PRETTY_PRINT dan JSON_UNESCAPED_UNICODE digunakan dalam gabungan, dan format output diinden dan Jangan lari daripada bahasa Cina.

4. Ringkasan

Dalam PHP, menggunakan format JSON untuk interaksi data telah menjadi salah satu amalan yang paling biasa. Artikel ini bermula daripada konsep JSON dan memperkenalkan kaedah menghurai dan menjana JSON dalam PHP. Pembangun boleh memilih kaedah yang sesuai untuk melaksanakan operasi JSON berdasarkan keperluan sebenar. Memahami pengetahuan JSON yang berkaitan akan membantu kami berinteraksi dengan lebih baik dengan data bahagian hadapan dan belakang serta meningkatkan kecekapan pembangunan aplikasi web.

Atas ialah kandungan terperinci Panduan untuk penghuraian dan penjanaan JSON dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn