PHP提供了 json_decode() 函數來解碼 JSON 字串,將其轉換為 PHP 資料結構。讓我們深入研究如何存取結果:
物件屬性存取:
物件屬性可以透過 $object->property的方式訪問,例如:
$json = '{"type": "donut", "name": "Cake"}'; $yummy = json_decode($json); echo $yummy->type; // "donut"
數組元素訪問:
數組元素可以透過 $array[0]的方式訪問,例如:
$json = '["Glazed", "Chocolate with Sprinkles", "Maple"]'; $toppings = json_decode($json); echo $toppings[1]; // "Chocolate with Sprinkles"
嵌套項目訪問:
嵌套項目可以通過連續的屬性和索引訪問,例如$object->array [0]->etc。 :
$json = '{"type": "donut", "name": "Cake", "toppings": [{"id": "5002", "type": "Glazed"}]}'; $yummy = json_decode($json); echo $yummy->toppings[0]->id; // "5002"
轉換為關聯數組:
傳遞 true 作為 json_decode() 的第二個參數,可以將 JSON物件解碼為關聯數組,其鍵為字串:
$json = '{"type": "donut", "name": "Cake"}'; $yummy = json_decode($json, true); echo $yummy['type']; // "donut"
存取關聯數組項目:
可以透過foreach (array_expression as $key => $value )遍歷鍵與值:
$json = '{"foo": "foo value", "bar": "bar value", "baz": "baz value"}'; $assoc = json_decode($json, true); foreach ($assoc as $key => $value) { echo "The value of key '$key' is '$value'" . PHP_EOL; }
輸出:
The value of key 'foo' is 'foo value' The value of key 'bar' is 'bar value' The value of key 'baz' is 'baz value'
未知資料結構:
如果不知道資料結構,請參考相關文件或使用print_r()檢查結果:
print_r(json_decode($json));
json_decode() 傳回 null:
當 JSON 為 null 或無效時,就會出現這種情況。使用 json_last_error_msg() 檢查錯誤訊息。
特別字元屬性名稱:
使用{"@attributes":{"answer":42}} 存取特殊字元的屬性名稱:
$json = '{"@attributes":{"answer":42}}'; $thing = json_decode($json); echo $thing->{'@attributes'}->answer; //42
以上是如何使用 PHP 存取 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!