首頁  >  文章  >  後端開發  >  php中怎麼將json物件轉為字串陣列對象

php中怎麼將json物件轉為字串陣列對象

PHPz
PHPz原創
2023-04-18 09:48:18432瀏覽

在 PHP 中,json_decode 函數能夠將 JSON 字串解析為 PHP 中的物件或陣列,而 json_encode 函數則能夠將 PHP 物件或陣列轉換為 JSON 字串。但有時我們需要將 JSON 物件轉換成字串陣列對象,該怎麼辦?

假設我們的JSON 字串如下所示:

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "running", "swimming"]
}

我們可以使用下面的PHP 程式碼將其轉換成字串陣列物件:

$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);

首先,我們將JSON 字串傳遞給json_decode 函數,並將第二個參數設為true,表示將解析後的JSON 轉換成關聯陣列。

接著,我們使用 array_keys 函數取得關聯數組的鍵名,使用 array_values 函數取得關聯數組的值。

然後,我們透過 for 迴圈遍歷所有的鍵名和值,並判斷值是否為陣列。如果值為數組,我們將使用 json_encode 函數將其轉換為 JSON 字串;如果不是數組,我們將使用強制類型轉換將其轉換為字串。

最後,我們將鍵名作為鍵,將字串作為值,建構一個新的關聯數組。使用 var_dump 函數輸出結果,可以得到以下輸出:

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

可以看到,我們成功地將 JSON 物件轉換成了字串陣列物件。其中,關鍵步驟是使用 json_encode 函數將陣列轉換成 JSON 字串。

以上是php中怎麼將json物件轉為字串陣列對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn