Rumah > pembangunan bahagian belakang > masalah PHP > 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
Lepaskan: 2023-04-17 15:56:25
asal
663 orang telah melayarinya

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"
   }
}
Salin selepas log masuk

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);
Salin selepas log masuk

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
        )

)
Salin selepas log masuk

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);
Salin selepas log masuk

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
        )

)
Salin selepas log masuk

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}
   ]
}
Salin selepas log masuk

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);
Salin selepas log masuk

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
                )

        )

)
Salin selepas log masuk

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
                )

        )

)
Salin selepas log masuk

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
   }
}
Salin selepas log masuk

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);
Salin selepas log masuk

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
        )

)
Salin selepas log masuk

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);
Salin selepas log masuk

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
   }
}
Salin selepas log masuk

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);
Salin selepas log masuk

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!

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