Bagaimana untuk menukar rentetan json kepada objek tatasusunan dalam php

PHPz
Lepaskan: 2023-04-25 18:04:38
asal
936 orang telah melayarinya

Dalam pembangunan PHP, selalunya perlu menukar rentetan JSON kepada tatasusunan atau objek untuk memudahkan pemprosesan data. JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang menggunakan sintaks yang serupa dengan JavaScript dan boleh dihuraikan dan dijana dengan mudah oleh pelbagai bahasa pengaturcaraan dan rangka kerja.

Dalam PHP, anda boleh menggunakan fungsi json_decode() untuk menukar rentetan JSON kepada tatasusunan atau objek PHP. Sintaks fungsi ini adalah seperti berikut:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Salin selepas log masuk

Perihalan parameter:

  • $json ialah rentetan JSON untuk dihuraikan.
  • $assoc ialah parameter pilihan yang menunjukkan jenis data yang ditukar. Jika ditetapkan kepada benar, tatasusunan bersekutu dikembalikan jika ditetapkan kepada palsu (lalai), objek dikembalikan.
  • $depth ialah parameter pilihan, menunjukkan kedalaman rekursi maksimum. Nilai lalai ialah 512.
  • $options ialah parameter pilihan, menunjukkan pilihan semasa menghuraikan JSON. Nilai lalai ialah 0.

Seterusnya, kami menunjukkan cara menukar rentetan JSON kepada tatasusunan atau objek PHP.

Contoh 1: Tukar rentetan JSON kepada tatasusunan PHP

$jsonStr = '{"name":"John", "age":30, "city":"New York"}';
$assocArr = json_decode($jsonStr, true);

print_r($assocArr);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [name] => John
    [age] => 30
    [city] => New York
)
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan fungsi json_decode() Tukar JSON rentetan kepada tatasusunan bersekutu. Perlu diingat bahawa jika parameter $assoc ditetapkan kepada benar, tatasusunan bersekutu dikembalikan jika tidak, objek dikembalikan.

Contoh 2: Tukar rentetan JSON kepada objek PHP

$jsonStr = '{"name":"John", "age":30, "city":"New York"}';
$obj = json_decode($jsonStr);

echo $obj->name . "\n";
echo $obj->age . "\n";
echo $obj->city . "\n";
Salin selepas log masuk

Hasil output:

John
30
New York
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan fungsi json_decode() Tukar JSON rentetan ke objek. Perlu diingat bahawa jika parameter $assoc tidak ditetapkan kepada benar (atau parameter tidak diluluskan), objek akan dikembalikan jika tidak, tatasusunan bersekutu akan dikembalikan.

Contoh 3: Mengendalikan rentetan JSON dengan ralat penghuraian

Kadangkala, kita akan menemui beberapa rentetan JSON bukan standard atau rentetan JSON mengandungi data yang salah. Jika kami menggunakan fungsi json_decode() secara langsung, pengecualian akan dilemparkan atau palsu akan dikembalikan. Dalam kes ini, kita boleh menggunakan pernyataan cuba-tangkap untuk mengendalikan pengecualian, atau menggunakan parameter pilihan kedua untuk mengesan sama ada penghuraian berjaya.

$jsonStr = '{"name":"John", "age":30, "city":"New York}';
$array = json_decode($jsonStr, true);

if ($array === null) {
    echo '解析JSON失败:' . json_last_error_msg() . "\n";
}
Salin selepas log masuk

Hasil keluaran:

解析JSON失败:Syntax error
Salin selepas log masuk

Dalam contoh di atas, kami sengaja memadamkan pendakap kerinting pengakhiran rentetan JSON, menjadikannya rentetan JSON yang tidak sah. Dengan menggunakan parameter pilihan kedua, kita boleh mengesan sama ada penghuraian berjaya Jika nol dikembalikan, penghuraian gagal. Pada masa ini, kita boleh menggunakan fungsi json_last_error_msg() untuk mendapatkan sebab khusus kegagalan penghuraian.

Ringkasan

Melalui contoh di atas, kita dapat melihat bahawa menukar rentetan JSON kepada tatasusunan atau objek dalam PHP adalah sangat mudah, hanya gunakan fungsi json_decode(). Perlu diingat bahawa jika rentetan JSON tidak diseragamkan, ia juga boleh menyebabkan kegagalan penghuraian Kita boleh menggunakan pernyataan cuba-tangkap untuk mengendalikan pengecualian, atau menggunakan parameter pilihan kedua untuk mengesan sama ada penghuraian berjaya.

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

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan