Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php menukar json kepada objek array

php menukar json kepada objek array

PHPz
PHPzasal
2023-05-11 09:37:36436semak imbas

Dalam pembangunan web, selalunya ia melibatkan penyerahan data dalam format JSON dari halaman hujung depan ke hujung belakang, dan kemudian menukar data kepada bentuk tatasusunan atau objek yang boleh dikendalikan oleh PHP. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menukar data JSON kepada objek tatasusunan.

JSON ialah format pertukaran data yang ringan dengan struktur yang jelas dan mudah dibaca dan ditulis. PHP mempunyai fungsi pemprosesan JSON terbina dalam, yang boleh menukar JSON ke dalam bentuk tatasusunan atau objek dengan mudah.

Andaikan kita mempunyai data JSON berikut:

{
    "name": "Tom",
    "age": 20,
    "address": {
        "province": "Guangdong",
        "city": "Guangzhou"
    },
    "hobbies": [
        "reading",
        "swimming"
    ]
}

Gunakan fungsi json_decode() PHP untuk menukarnya menjadi objek tatasusunan. Penggunaan fungsi adalah seperti berikut:

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

Perihalan parameter:

  • $json: Rentetan JSON yang perlu dinyahkodkan.
  • $assoc (pilihan): Apabila parameter ini benar, ia akan dikembalikan dalam bentuk tatasusunan, dan apabila ia palsu, ia akan dikembalikan dalam bentuk objek. Lalai kepada palsu.
  • $depth (pilihan): Tetapkan kedalaman maksimum untuk menghuraikan data JSON. Lalai ialah 512, dan null akan dikembalikan jika di luar julat.
  • $options (pilihan): Tetapkan pilihan penyahkod JSON, seperti JSON_BIGINT_AS_STRING, yang boleh mengembalikan integer besar sebagai rentetan.

Contoh kod:

$jsonStr = '{ "name": "Tom", "age": 20, "address": { "province": "Guangdong", "city": "Guangzhou" }, "hobbies": [ "reading", "swimming" ] }';

$array = json_decode($jsonStr, true);

print_r($array);

Hasil keluaran:

Array
(
    [name] => Tom
    [age] => 20
    [address] => Array
        (
            [province] => Guangdong
            [city] => Guangzhou
        )

    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
        )
)

Seperti yang anda lihat, fungsi json_decode() menukar rentetan JSON kepada objek tatasusunan PHP.

Jika anda ingin menukar data JSON ke dalam bentuk objek PHP, anda boleh mengalih keluar parameter kedua dalam fungsi atau menetapkannya kepada palsu.

Selain menukar data JSON ke dalam tatasusunan atau bentuk objek, PHP juga boleh mengekodkan data tatasusunan atau objek ke dalam rentetan JSON. Ini boleh dicapai menggunakan fungsi json_encode() PHP. Penggunaan fungsi adalah seperti berikut:

string json_encode(mixed $value[, int $options = 0[, int $depth = 512]])

Perihalan parameter:

  • $value: Nilai yang perlu dikodkan sebagai rentetan JSON.
  • $options (pilihan): Tetapkan pilihan pengekod JSON, seperti JSON_PRETTY_PRINT untuk menjadikan rentetan JSON yang dikodkan lebih mudah dibaca.
  • $depth (pilihan): Tetapkan kedalaman maksimum data JSON yang dikodkan. Lalai ialah 512. Jika ia melebihi julat, rentetan kosong akan dikembalikan.

Contoh kod:

$array = array(
    'name' => 'Tom',
    'age' => 20,
    'address' => array(
        'province' => 'Guangdong',
        'city' => 'Guangzhou'
    ),
    'hobbies' => array(
        'reading',
        'swimming'
    )
);

$jsonStr = json_encode($array, JSON_PRETTY_PRINT);

echo $jsonStr;

Hasil keluaran:

{
    "name": "Tom",
    "age": 20,
    "address": {
        "province": "Guangdong",
        "city": "Guangzhou"
    },
    "hobbies": [
        "reading",
        "swimming"
    ]
}

Dalam pembangunan sebenar, teknologi AJAX sering digunakan untuk menyerahkan data JSON ke pelayan bahagian belakang, dan kemudian melalui PHP Tukarkannya ke dalam bentuk yang boleh diambil tindakan. Menguasai fungsi PHP berkaitan JSON di atas akan memudahkan untuk memproses data JSON.

Atas ialah kandungan terperinci php menukar json kepada objek array. 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