Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang cara menukar data json kepada tatasusunan atau objek php

Mari kita bincangkan tentang cara menukar data json kepada tatasusunan atau objek php

PHPz
PHPzasal
2023-04-17 15:25:58574semak imbas

Format JSON ialah format pertukaran data yang ringan Disebabkan kelebihan kesederhanaan, kemudahan penggunaan, kelajuan dan kecekapan, ia telah menjadi format data yang digunakan secara meluas. Dalam PHP, kita boleh menggunakan fungsi json_decode() untuk menukar rentetan JSON kepada tatasusunan atau objek PHP. Artikel ini akan memperkenalkan cara menukar data berformat JSON kepada tatasusunan atau objek PHP, dan juga meneroka cara mengendalikan tatasusunan dan objek dalam JSON.

1. Tukar rentetan JSON kepada tatasusunan PHP

Berikut ialah contoh data JSON:

{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   }
}

Kita boleh menggunakan fungsi json_decode() untuk menukarnya kepada Tatasusunan PHP:

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   }
}';

$array = json_decode($json, true);

Apabila memanggil fungsi json_decode(), parameter pertama dihantar dalam rentetan JSON untuk ditukar dan parameter kedua diluluskan dalam nilai Boolean untuk Menentukan sama ada objek ditukar ialah tatasusunan (benar) atau objek (salah), kerana secara lalai fungsi json_decode() menukar rentetan JSON kepada objek.

Kami menetapkan parameter kedua kepada benar, kemudian nilai pulangan ialah tatasusunan PHP, dan hasilnya adalah seperti berikut:

Array
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

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

)

2 Tukar rentetan JSON kepada objek PHP

Jika parameter kedua fungsi json_decode() ditetapkan kepada palsu, objek PHP dikembalikan. Berikut ialah kod sampel:

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   }
}';

$obj = json_decode($json, false);

Selepas menetapkan parameter kedua kepada palsu, $obj ialah objek PHP dan hasilnya adalah seperti berikut:

stdClass Object
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [address] => stdClass Object
        (
            [city] => Beijing
            [province] => Beijing
            [country] => China
        )

)

3 dalam Tatasusunan JSON

Apabila data JSON mengandungi tatasusunan, kami masih boleh menggunakan fungsi json_decode() untuk menukarnya kepada tatasusunan atau objek PHP. Berikut ialah contoh data JSON yang mengandungi tatasusunan:

{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "scores": [
      {"subject": "math", "score": 90},
      {"subject": "physics", "score": 85},
      {"subject": "chemistry", "score": 78}
   ]
}

Kita boleh menggunakan fungsi json_decode() untuk menukarnya kepada tatasusunan PHP:

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "scores": [
      {"subject": "math", "score": 90},
      {"subject": "physics", "score": 85},
      {"subject": "chemistry", "score": 78}
   ]
}';

$array = json_decode($json, true);

Hasil yang ditukar adalah seperti berikut:

Array
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [scores] => Array
        (
            [0] => Array
                (
                    [subject] => math
                    [score] => 90
                )

            [1] => Array
                (
                    [subject] => physics
                    [score] => 85
                )

            [2] => Array
                (
                    [subject] => chemistry
                    [score] => 78
                )

        )

)

Kami juga boleh menetapkan parameter kedua fungsi json_decode() kepada palsu untuk menukarnya menjadi objek PHP. Keputusan yang ditukar adalah seperti berikut:

stdClass Object
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [scores] => Array
        (
            [0] => stdClass Object
                (
                    [subject] => math
                    [score] => 90
                )

            [1] => stdClass Object
                (
                    [subject] => physics
                    [score] => 85
                )

            [2] => stdClass Object
                (
                    [subject] => chemistry
                    [score] => 78
                )

        )

)

4. Memproses objek dalam JSON

Apabila data JSON mengandungi objek, kita juga boleh menggunakan fungsi json_decode() untuk menukarnya menjadi tatasusunan PHP atau objek. Berikut ialah contoh data JSON yang mengandungi objek:

{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   },
   "scores": {
      "math": 90,
      "physics": 85,
      "chemistry": 78
   }
}

Kita masih boleh menukarnya kepada tatasusunan atau objek PHP menggunakan fungsi json_decode():

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   },
   "scores": {
      "math": 90,
      "physics": 85,
      "chemistry": 78
   }
}';

$array = json_decode($json, true);
$obj = json_decode($json, false);

Tatasusunan PHP yang Ditukar dan objek adalah seperti berikut:

Array
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

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

    [scores] => Array
        (
            [math] => 90
            [physics] => 85
            [chemistry] => 78
        )

)

stdClass Object
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [address] => stdClass Object
        (
            [city] => Beijing
            [province] => Beijing
            [country] => China
        )

    [scores] => stdClass Object
        (
            [math] => 90
            [physics] => 85
            [chemistry] => 78
        )

)

5 Menukar tatasusunan atau objek PHP kepada JSON

Selepas menyelesaikan penghuraian dan pengendalian data JSON, kami juga mungkin perlu menukar tatasusunan atau objek PHP. objek ditukar kepada rentetan berformat JSON untuk pemprosesan atau penghantaran seterusnya. Anda boleh menggunakan fungsi json_encode() untuk menukar tatasusunan atau objek PHP kepada rentetan berformat JSON. Berikut ialah kod sampel:

$array = array(
   'name' => 'Tom',
   'age' => 26,
   'email' => 'tom@example.com',
   'hobbies' => array('reading', 'swimming', 'traveling'),
   'address' => array(
      'city' => 'Beijing',
      'province' => 'Beijing',
      'country' => 'China'
   ),
   'scores' => array(
      'math' => 90,
      'physics' => 85,
      'chemistry' => 78
   )
);

$json = json_encode($array);

Selepas memanggil fungsi json_encode(), nilai $json ialah rentetan format JSON yang ditukar dan hasilnya adalah seperti berikut:

{
   "name":"Tom",
   "age":26,
   "email":"tom@example.com",
   "hobbies":["reading","swimming","traveling"],
   "address":{
      "city":"Beijing",
      "province":"Beijing",
      "country":"China"
   },
   "scores":{
      "math":90,
      "physics":85,
      "chemistry":78
   }
}

6. Tukar tatasusunan atau objek PHP kepada JSON dan keluarkan

Jika anda perlu terus mengeluarkan data format JSON dalam PHP, kami boleh terus mengeluarkan hasilnya selepas memanggil fungsi json_encode(). Contoh berikut:

$array = array(
   'name' => 'Tom',
   'age' => 26,
   'email' => 'tom@example.com',
   'hobbies' => array('reading', 'swimming', 'traveling'),
   'address' => array(
      'city' => 'Beijing',
      'province' => 'Beijing',
      'country' => 'China'
   ),
   'scores' => array(
      'math' => 90,
      'physics' => 85,
      'chemistry' => 78
   )
);

header('Content-Type: application/json');
echo json_encode($array);

Dalam contoh di atas, kami menetapkan maklumat pengepala respons melalui fungsi pengepala() dan menetapkan ContentType kepada aplikasi/json, menunjukkan bahawa data yang dikembalikan adalah dalam format JSON. Kemudian gunakan gema untuk mengeluarkan data JSON yang ditukar.

Kesimpulan

Artikel ini terutamanya memperkenalkan cara menukar data JSON kepada tatasusunan atau objek PHP. Ia juga membincangkan cara mengendalikan tatasusunan dan objek dalam JSON, dan menunjukkan penukaran tatasusunan atau objek PHP. Kaedah untuk rentetan berformat JSON. Saya harap artikel ini dapat membantu pembangun PHP.

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menukar data json kepada tatasusunan atau objek 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