我認爲對於您的具體示例,您將使用$arr[0]->Error
訪問錯誤,但json_decode中的assoc選項意味着它取決於您要求的json_decode
要做的事情。
這意味着如果你做了$arr = json_decode($json, true)
,那麼你將訪問錯誤$arr[0]['Error']
,因爲JSON將始終將對象解碼爲關聯數組。
這是使用JSON和PHP進行變異和混淆的可愛示例,您可能從PHP中的關聯數組開始,將其轉換爲JSON並返回並丟失關聯數組。只是要留意一下。
在PHP中,您可以使用[
方括號]
和具有->
箭頭的對象屬性來訪問數組。它們不像JavaScript中的括號和點符號那樣可以互換。所以你總是需要留意你的數據結構是對象還是關聯數組。
至於測試,如果屬性格式存在,您使用isset:
if(isset($arr[0]->Error)) {
// handle error
}
現在,我真的很討厭使用isset無處不在,所以我有一個效用函數:
function getProperty($object, $propertyName, $defaultValue = false)
{
$returnValue = $defaultValue;
if (!empty($object)) {
if (is_array($object)) {
if (isset($object[$propertyName])) {
$returnValue = $object[$propertyName];
}
} else {
if (isset($object->$propertyName)) {
$returnValue = $object->$propertyName;
}
}
}
return $returnValue;
}
中這意味着我的代碼,我這樣做:
if(($error = getProperty($arr[0], 'Error')) === false) {
// process $error
}
...但是,這是承擔了總是想要聯合國初始值在大多數時間不存在時給予默認值。 (該函數非常大,因爲它也適用於對象和陣列)
到目前爲止您試過的任何代碼示例? –
這是一個PHP問題,所以我們假設數據是JSON,但在PHP – Aknosis
中訪問過,我測試了很多我刪除的內容,我會重新搜索。李對不起是它的JSON解碼 – Omar