Bagaimana untuk menukar objek json kepada objek tatasusunan rentetan dalam php

PHPz
Lepaskan: 2023-04-18 10:00:02
asal
471 orang telah melayarinya

Dalam PHP, fungsi json_decode boleh menghuraikan rentetan JSON ke dalam objek atau tatasusunan dalam PHP, manakala fungsi json_encode boleh menukar objek atau tatasusunan PHP kepada rentetan JSON. Tetapi kadangkala kita perlu menukar objek JSON kepada objek tatasusunan rentetan, apakah yang perlu kita lakukan?

Andaikan rentetan JSON kami kelihatan seperti ini:

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "running", "swimming"]
}
Salin selepas log masuk

Kita boleh menggunakan kod PHP berikut untuk menukarnya menjadi objek tatasusunan rentetan:

$json = '{"name":"Tom","age":18,"hobbies":["reading","running","swimming"]}';
$data = json_decode($json, true);

$keys = array_keys($data);
$values = array_values($data);

$str_arr = [];
for ($i = 0; $i < count($keys); $i++) {
    if (is_array($values[$i])) {
        $str_arr[$keys[$i]] = json_encode($values[$i]);
    } else {
        $str_arr[$keys[$i]] = (string) $values[$i];
    }
}

var_dump($str_arr);
Salin selepas log masuk

Pertama, kami menghantar rentetan JSON ke fungsi json_decode dan menetapkan parameter kedua kepada benar, yang bermaksud menukar JSON yang dihuraikan menjadi tatasusunan bersekutu.

Seterusnya, kami menggunakan fungsi array_keys untuk mendapatkan nama kunci tatasusunan bersekutu, dan fungsi array_values ​​​​untuk mendapatkan nilai tatasusunan bersekutu.

Kemudian, kami merentasi semua nama dan nilai utama melalui gelung for dan menentukan sama ada nilai itu ialah tatasusunan. Jika nilai ialah tatasusunan, kami akan menggunakan fungsi json_encode untuk menukarnya kepada rentetan JSON jika ia bukan tatasusunan, kami akan menggunakan cast untuk menukarnya kepada rentetan.

Akhir sekali, kami menggunakan nama kunci sebagai kunci dan rentetan sebagai nilai untuk membina tatasusunan bersekutu baharu. Menggunakan fungsi var_dump untuk mengeluarkan hasil, anda boleh mendapatkan output berikut:

array(3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "18"
  ["hobbies"]=>
  string(28) "["reading","running","swimming"]"
}
Salin selepas log masuk

Seperti yang anda lihat, kami berjaya menukar objek JSON menjadi objek tatasusunan rentetan. Antaranya, langkah utama ialah menggunakan fungsi json_encode untuk menukar tatasusunan kepada rentetan JSON.

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