在php程式設計過程中,經常需要透過getJSON或其他方式取得到取得到的json格式數據,此時需要將其轉為數組,以便後續進行處理。本篇文章將介紹如何在php中將json格式資料轉為陣列。
#php中提供了一個非常簡單的方法,可以使用內建函數json_decode()直接將json轉換為陣列。使用方法如下:
$json_str = '{"name":"Tom","age":"18","gender":"male"}'; $arr = json_decode($json_str, true);
其中,json_decode函數的第一個參數是需要轉換的json字串,第二個參數為可選的布林型值,表示是否以陣列形式傳回。如果不設定此參數的值,則預設以物件形式傳回結果。
假如以上json字串轉換結果如下:
Array ( [name] => Tom [age] => 18 [gender] => male )
如果需要對json格式資料進行更複雜的操作,建議使用第三方函式庫進行處理。目前,php中有兩個比較著名的開源函式庫可以供我們使用,分別是jsonkit和jsonpath。
2.1. Jsonkit
Jsonkit是由qqxhb開發的json處理工具。它提供了多個函數可以支援對json資料的解析、封裝、格式化等操作。其中,json_decode()函數可以將json字串轉換為數組,json_encode()函數可以將數組轉換為json格式字串。
使用方式:
$json_str = '{"name":"Tom","age":"18","gender":"male"}'; $arr = jsonkit_decode($json_str);
其中,jsonkit_decode()函數的第一個參數是需要轉換的json字串,傳回值為陣列形式。
2.2. Jsonpath
Jsonpath是一款更強大的json處理函式庫,可以支援對json資料進行查詢、轉換等操作。使用方式:
$json_str = '{"name":"Tom","age":"18","gender":"male"}'; $jp = new JsonPath($json_str); $arr = $jp->json_decode();
其中,JsonPath類別是由BrainMaestro開發的,我們需要先將需要處理的json資料傳入該類別中,然後可以呼叫json_decode()函數將其轉換為陣列。
總結:
以上就是php使用內建函數和第三方函式庫將json轉換為陣列的方法。如果只需要簡單的轉換操作,建議使用內建函數json_decode,如果需要更多的操作,可以選擇使用第三方函式庫來處理。同時,需要注意json字串格式的正確性,否則可能會導致轉換失敗。
以上是php怎麼把json轉為數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!