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

Bagaimana untuk menukar json menjadi objek tatasusunan objek dalam php

王林
王林asal
2023-05-06 12:10:08452semak imbas

Mengirim data dalam format JSON ialah operasi yang sangat biasa semasa proses pengekodan. PHP menyediakan fungsi yang dipanggil json_decode() untuk menukar rentetan JSON kepada nilai PHP. Artikel ini menerangkan cara menggunakan PHP untuk menukar JSON kepada tatasusunan dan objek.

Tukar kepada Tatasusunan menggunakan json_decode()

Andaikan kita mempunyai rentetan JSON berikut:

{
    "name": "Tom",
    "age": 30,
    "hobbies": ["reading", "running", "swimming"],
    "address": {
        "city": "Beijing",
        "country": "China"
    }
}

Sekarang kita perlu menukarnya kepada tatasusunan PHP. Kita boleh menggunakan fungsi json_decode() dan menetapkan parameter kedua kepada true untuk menukar rentetan JSON kepada tatasusunan bersekutu Kodnya adalah seperti berikut:

$jsonString = '{"name":"Tom","age":30,"hobbies":["reading","running","swimming"],"address":{"city":"Beijing","country":"China"}}';
$assocArray = json_decode($jsonString, true);
print_r($assocArray);

Hasil output ialah:

Array
(
    [name] => Tom
    [age] => 30
    [hobbies] => Array
        (
            [0] => reading
            [1] => running
            [2] => swimming
        )

    [address] => Array
        (
            [city] => Beijing
            [country] => China
        )

)
<.>Seperti yang anda lihat, kami berjaya menukar rentetan JSON kepada tatasusunan PHP dan mencetak hasilnya.

Tukar kepada objek menggunakan

json_decode()

Selain menukar rentetan JSON kepada tatasusunan PHP, kami juga boleh menukarnya kepada objek PHP. Begitu juga, kita boleh menggunakan fungsi

dan menetapkan parameter kedua kepada json_decode() atau meninggalkannya untuk menukar rentetan JSON kepada objek Kodnya adalah seperti berikut: false

$jsonString = '{"name":"Tom","age":30,"hobbies":["reading","running","swimming"],"address":{"city":"Beijing","country":"China"}}';
$obj = json_decode($jsonString);
var_dump($obj);
Hasil output ialah:

object(stdClass)#1 (4) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  int(30)
  ["hobbies"]=>
  array(3) {
    [0]=>
    string(7) "reading"
    [1]=>
    string(7) "running"
    [2]=>
    string(8) "swimming"
  }
  ["address"]=>
  object(stdClass)#2 (2) {
    ["city"]=>
    string(7) "Beijing"
    ["country"]=>
    string(5) "China"
  }
}
Seperti yang anda lihat, kami berjaya menukar rentetan JSON kepada objek PHP dan mencetak hasilnya.

Tukar kepada tatasusunan objek menggunakan

json_decode()

Dalam sesetengah kes, kita perlu menukar rentetan JSON kepada berbilang objek PHP. Dalam kes ini, kita boleh mula-mula menukarnya kepada tatasusunan PHP dan kemudian menggunakan fungsi pemetaan tatasusunan untuk menukarnya kepada tatasusunan objek PHP. Kodnya adalah seperti berikut:

$jsonString = '[{"name":"Tom","age":30},{"name":"Alice","age":25},{"name":"Bob","age":40}]';
$array = json_decode($jsonString, true);
$objArray = array_map(function($item) {
    return (object) $item;
}, $array);
print_r($objArray);
Hasil output ialah:

Array
(
    [0] => stdClass Object
        (
            [name] => Tom
            [age] => 30
        )

    [1] => stdClass Object
        (
            [name] => Alice
            [age] => 25
        )

    [2] => stdClass Object
        (
            [name] => Bob
            [age] => 40
        )

)
Seperti yang anda lihat, kami berjaya menukar rentetan JSON ke dalam tatasusunan objek PHP dan mencetak hasilnya.

Ringkasnya, PHP menyediakan cara yang sangat mudah untuk menukar rentetan JSON kepada tatasusunan dan objek PHP. Kita hanya perlu menggunakan fungsi

dan tentukan parameter yang sesuai. Ini berguna kerana kebanyakan API web mengembalikan data dalam JSON. json_decode()

Atas ialah kandungan terperinci Bagaimana untuk menukar json menjadi objek tatasusunan objek 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