Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar json ke dalam array dalam php

Bagaimana untuk menukar json ke dalam array dalam php

PHPz
PHPzasal
2023-04-20 13:52:43476semak imbas

Dalam pembangunan web, JSON (JavaScript Object Notation) ialah format pertukaran data yang biasa digunakan. Dalam PHP, anda boleh menukar data berformat JSON ke dalam tatasusunan PHP dengan mudah menggunakan fungsi json_decode().

Gunakan fungsi json_decode() untuk menukar JSON kepada tatasusunan PHP

Gunakan fungsi json_decode() dalam PHP untuk menukar data format JSON kepada tatasusunan Sintaks fungsi ini ialah:

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

Perihalan parameter:

  1. json: Rentetan JSON untuk dinyahkod.
  2. assoc: Apabila parameter ini benar, objek dalam bentuk tatasusunan akan dikembalikan dan bukannya bentuk objek lalai.
  3. kedalaman: Tentukan kedalaman resolusi maksimum. Nilai lalai ialah 512.
  4. pilihan: Pilihan untuk mengawal tingkah laku penghuraian, termasuk JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. Nilai lalai ialah 0.

Berikut ialah contoh kod untuk menukar JSON kepada tatasusunan PHP:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 输出转换后的PHP数组
print_r($arr);
?>

Hasil output ialah:

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

Dalam kod di atas , Pertama, rentetan JSON ditakrifkan, kemudian fungsi json_decode() digunakan untuk menukar rentetan JSON kepada tatasusunan PHP, dan akhirnya tatasusunan PHP yang ditukar dikeluarkan melalui fungsi print_r().

Jika anda tidak perlu menukar JSON ke dalam bentuk tatasusunan PHP, tetapi menyimpannya sebagai bentuk objek JSON, anda boleh meninggalkan parameter kedua dalam fungsi json_decode(). Kod sampel adalah seperti berikut:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成JSON对象
$obj = json_decode($json_str);

// 输出转换后的JSON对象
print_r($obj);
?>

Hasil output ialah:

stdClass Object
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

Dalam kod di atas, parameter kedua tidak diluluskan dalam fungsi json_decode(), jadi ditukar Hasilnya adalah dalam bentuk objek JSON, bukan tatasusunan.

Gunakan fungsi json_last_error() untuk menyemak ralat penyahkod JSON

Apabila menggunakan fungsi json_decode() untuk menyahkod JSON, jika format rentetan JSON tidak betul, proses penyahkodan mungkin menghasilkan ralat. Pada masa ini, anda boleh menggunakan fungsi json_last_error() untuk menyemak ralat penyahkodan JSON. Sintaks fungsi ini ialah:

int json_last_error ( void )

Berikut ialah contoh kod untuk menyemak ralat penyahkodan JSON:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":"18", "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 检查解码是否出错
if (json_last_error() != JSON_ERROR_NONE) {
    echo &#39;JSON decode error: &#39; . json_last_error_msg();
} else {
    print_r($arr);
}
?>

Dalam kod di atas, kerana nilai age atribut ialah rentetan dan bukannya nombor, jadi rentetan JSON tidak boleh ditukar dengan betul kepada tatasusunan PHP. Semasa proses penyahkodan, didapati terdapat ralat penyahkodan JSON, jadi mesej ralat telah dikeluarkan melalui fungsi json_last_error_msg(). Hasil output ialah:

JSON decode error: Malformed UTF-8 characters, possibly incorrectly encoded

Ringkasan

Artikel ini memperkenalkan cara menggunakan fungsi json_decode() dalam PHP untuk menukar data format JSON kepada tatasusunan PHP dan cara menggunakan json_last_error() Fungsi menyemak ralat penyahkodan JSON. Dalam pembangunan sebenar, kita selalunya perlu menggunakan data format JSON untuk pertukaran data, jadi sangat penting bagi pembangun web untuk mahir dalam menukar JSON kepada tatasusunan PHP.

Atas ialah kandungan terperinci Bagaimana untuk menukar json ke dalam array 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