在 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中文網其他相關文章!