Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk menukar tatasusunan menjadi data json dalam php

Bagaimana untuk menukar tatasusunan menjadi data json dalam php

Apr 26, 2023 pm 02:35 PM

PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas yang biasa digunakan dalam pembangunan tapak web, penjanaan halaman web dinamik dan pembangunan aplikasi web. Dalam pembangunan banyak aplikasi, penghantaran data adalah bahagian yang sangat penting, dan JSON ialah format pertukaran data ringan yang digunakan secara meluas kerana kesederhanaan, kemudahan penggunaan dan kebolehskalaannya. Dalam PHP, kita boleh menggunakan fungsi terbina dalam untuk menukar tatasusunan kepada format JSON.

  1. fungsi json_encode()

fungsi json_encode() ialah kaedah paling asas dalam PHP untuk menukar tatasusunan kepada format JSON. Sebagai fungsi terbina dalam, penggunaannya sangat mudah Anda hanya perlu menghantar dalam tatasusunan untuk ditukar sebagai parameter. Sebagai contoh, kami mempunyai tatasusunan berikut:

$data = array(
    'name' => 'John',
    'age' => 20,
    'gender' => 'male'
);
Salin selepas log masuk

Kita boleh menggunakan kod berikut untuk menukar tatasusunan kepada format JSON:

$json_data = json_encode($data);
Salin selepas log masuk

Selepas penukaran, $json_data akan kelihatan seperti ini Rentetan JSON:

{
    "name": "John",
    "age": 20,
    "gender": "male"
}
Salin selepas log masuk

Perlu diambil perhatian bahawa fungsi json_encode() akan melepaskan aksara bukan ASCII ke dalam pengekodan Unicode secara lalai Jika anda perlu menjana rentetan JSON yang dikodkan ASCII, anda perlu melakukannya tambahkannya dalam fungsi Tambah parameter JSON_UNESCAPED_UNICODE.

$json_data = json_encode($data, JSON_UNESCAPED_UNICODE);
Salin selepas log masuk
  1. Menyokong fungsi json_encode() JSONP

Dalam sesetengah kes, kita perlu mendapatkan data JSON melalui kaedah merentas domain dan JSONP ialah data JSON yang dibenarkan format untuk permintaan merentas domain. Dalam PHP, kita boleh menggunakan fungsi json_encode() untuk menjana data JSON yang menyokong JSONP. Untuk data JSON yang menyokong JSONP, nama fungsi panggil balik perlu dihantar sebagai parameter kedua bagi fungsi json_encode(). Contohnya:

$data = array(
    'name' => 'John',
    'age' => 20,
    'gender' => 'male'
);
$callback = $_GET['callback'];
$json_data = json_encode($data);
echo $callback . '(' . $json_data . ')';
Salin selepas log masuk

Kod ini akan menjana data dalam format berikut:

callback_name({
    "name": "John",
    "age": 20,
    "gender": "male"
})
Salin selepas log masuk

Apabila kami meminta data JSON menggunakan kaedah silang domain, nama fungsi panggil balik akan berada dalam data tindak balas dipanggil.

  1. fungsi json_decode()

fungsi json_decode() ialah fungsi yang menukar data format JSON kepada tatasusunan PHP. Tidak seperti fungsi json_encode(), json_decode() memerlukan dua parameter: rentetan JSON dan parameter pilihan $assoc. Apabila $assoc adalah benar, fungsi akan menukar rentetan JSON kepada tatasusunan bersekutu PHP, jika tidak, ia akan ditukar menjadi objek PHP. Contohnya:

$json_data = '{
    "name": "John",
    "age": 20,
    "gender": "male"
}';
$data = json_decode($json_data, true);
var_dump($data);
Salin selepas log masuk

Selepas penukaran, $data akan menjadi tatasusunan dalam format berikut:

array(3) {
  ["name"]=>
  string(4) "John"
  ["age"]=>
  int(20)
  ["gender"]=>
  string(4) "male"
}
Salin selepas log masuk

Perlu diambil perhatian bahawa jika rentetan JSON tidak mematuhi JSON format atau pengekodan tidak betul Ralat, fungsi json_decode() akan mengembalikan nilai nol.

Akhir sekali, perlu dinyatakan bahawa walaupun fungsi json_encode() dan json_decode() menyediakan kaedah yang mudah untuk menukar tatasusunan dan data format JSON dalam PHP, anda juga perlu memberi perhatian kepada isu keselamatan data. Semasa penghantaran data, data perlu ditapis dan disahkan dengan selamat untuk mengelakkan serangan berniat jahat dan kebocoran data.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan menjadi data json dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah amalan terbaik untuk deduplikasi tatasusunan php Apakah amalan terbaik untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:41 PM

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Mar 03, 2025 pm 04:51 PM

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Bagaimana saya bekerja dengan sambungan php dan pecl?

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:50 PM

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Mar 03, 2025 pm 04:47 PM

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

See all articles