Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar json kepada array dalam php

Bagaimana untuk menukar json kepada array dalam php

PHPz
PHPzasal
2023-04-20 10:07:08486semak imbas

Dalam PHP, menukar JSON kepada tatasusunan ialah operasi biasa. JSON ialah format pertukaran data ringan yang semakin popular di kalangan pembangun kerana kebolehbacaan dan mudah alihnya. Apabila menggunakan PHP untuk pemprosesan JSON, anda boleh menggunakan fungsi terbina dalam PHP untuk menukar data JSON kepada tatasusunan. Dalam artikel ini, kita akan belajar cara menukar JSON kepada tatasusunan menggunakan PHP.

  1. Gunakan fungsi json_decode() untuk menukar JSON kepada tatasusunan

PHP menyediakan fungsi yang dipanggil "json_decode()", yang boleh menukar data JSON kepada tatasusunan PHP. Fungsi ini mengambil dua parameter, yang pertama ialah rentetan JSON yang anda mahu tukar dan yang kedua ialah parameter boolean pilihan yang menentukan sama ada untuk menukar JSON kepada tatasusunan bersekutu. Secara lalai, nilai parameter ini adalah palsu, yang bermaksud tatasusunan biasa dikembalikan.

Berikut ialah contoh rentetan JSON:

$json_string = '{
  "name": "John",
  "age": 30,
  "city": "New York"
}';

Tukar rentetan JSON kepada tatasusunan bersekutu dengan memanggil fungsi json_decode():

$array = json_decode($json_string, true);

Kini, kita boleh mendapatkan nilai data JSON dengan mengakses kunci tatasusunan, contohnya:

echo $array['name']; // 输出:John
echo $array['age']; // 输出:30
echo $array['city']; // 输出:New York
  1. Menyokong penghuraian JSON Cina

Jika dalam Rentetan JSON Mengandungi aksara Cina, yang memerlukan pemprosesan khas untuk dihuraikan dengan betul. Anda boleh menggunakan fungsi terbina dalam PHP json_decode() bersama dengan json_last_error_msg() untuk menyelesaikan masalah ini.

$json_string = '{"中文": "这是一个中文字符串"}';
$array = json_decode($json_string, true);

if (json_last_error() === JSON_ERROR_UTF8) {
    $json_string = mb_convert_encoding($json_string, 'UTF-8', 'UTF-8');
    $array = json_decode($json_string, true);
}

echo $array['中文']; // 输出:这是一个中文字符串
  1. Apabila terdapat berbilang peringkat sarang dalam rentetan JSON

Apabila terdapat berbilang tahap sarang dalam data JSON, anda boleh menggunakan kaedah rekursif . Tukar JSON kepada tatasusunan berbilang dimensi. Seperti yang ditunjukkan di bawah:

$json_string = '{
  "name": "John",
  "age": 30,
  "city": "New York",
  "children": [
    {
      "name": "Mary",
      "age": 5
    },
    {
      "name": "Bob",
      "age": 3
    }
  ]
}';
$array = json_decode($json_string, true);

function json_to_array($data) {
    if (is_object($data)) {
        $data = get_object_vars($data);
    }
    if (is_array($data)) {
        return array_map(__FUNCTION__, $data);
    } else {
        return $data;
    }
}

$array = json_to_array($array);

print_r($array); // 输出:
/*
Array
(
    [name] => John
    [age] => 30
    [city] => New York
    [children] => Array
        (
            [0] => Array
                (
                    [name] => Mary
                    [age] => 5
                )

            [1] => Array
                (
                    [name] => Bob
                    [age] => 3
                )

        )

)
*/

Dalam artikel ini kami memperkenalkan beberapa kaedah untuk menukar JSON kepada tatasusunan. Sama ada ia daripada rentetan JSON ringkas atau data JSON bersarang berbilang lapisan, fungsi json_decode() PHP boleh menyelesaikan tugas penghuraian dengan baik. Saya harap artikel ini dapat membantu anda menggunakan PHP dengan lebih baik untuk memproses data JSON.

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