0
我目前從Web服務使用檢索信息:笨PHP - 解析SOAP(WDSL)導致
$serviceData= new SoapClient('http://xxx.xxx.xxx.xx:xx/WebService/WebService.svc?wsdl');
$response = $serviceData->GetMyInformation();
var_dump($response);
從的var_dump結果如下:
object(stdClass)#15 (1)
{ ["GetDatabaseResult"]=> object(stdClass)#16 (1)
{ ["DatabaseInformation"]=> array(4)
{ [0]=> object(stdClass)#17 (2)
{ ["DateCreated"]=> string(19) "2016-07-06T09:36:03" ["CurrencyCode"]=> string(3) "USD" }
[1]=> object(stdClass)#18 (2)
{ ["DateCreated"]=> string(19) "2016-12-07T02:49:02" ["CurrencyCode"]=> string(3) "USD" }
[2]=> object(stdClass)#19 (2)
{ ["DateCreated"]=> string(19) "2016-12-07T02:52:38" ["CurrencyCode"]=> string(3) "USD" }
[3]=> object(stdClass)#20 (2)
{ ["DateCreated"]=> string(19) "2016-12-07T02:53:38" ["CurrencyCode"]=> string(3) "USD" }
}
}
}
我需要的是一個foreach環,我可以檢索每個鍵和值:
DateCreated: 2016-07-06T09:36:03
CurrencyCode: USD
我嘗試使用json_encode($response)
可以除去噸他object(stdClass)#15 (1)
和它走到這一步的json_dencode($response)
:
array(1)
{ ["GetDatabaseResult"]=> array(1)
{ ["DatabaseInformation"]=> array(4)
{ [0]=> array(2)
{ ["DateCreated"]=> string(19) "2016-07-06T09:36:03" ["CurrencyCode"]=> string(3) "USD" }
[1]=> array(17)
{ ["DateCreated"]=> string(19) "2016-12-07T02:49:02" ["CurrencyCode"]=> string(3) "USD" }
[2]=> array(17)
{ ["DateCreated"]=> string(19) "2016-12-07T02:52:38" ["CurrencyCode"]=> string(3) "USD" }
[3]=> array(17)
{ ["DateCreated"]=> string(19) "2016-12-07T02:52:38" ["CurrencyCode"]=> string(3) "USD" }
}
}
}
我知道這是一個嵌套的數組,但我將如何解析呢?
這太棒了!你能解釋一下你的思想過程:分解JSON以及你如何到達:$ response-> GetDatabaseResult-> DatabaseInformation。我一直有這個問題,不知道何時應用 - >(對象),因爲主要我上面發佈的JSON看起來像關聯數組。 – Raidenlee
從var_dump的輸出結果來看,確實需要一點思路,但是在任何你看到'object(stdClass)''那麼''>'的地方,以及你看到'array'的任何地方都可能是'[]'lookup或一個'foreach'。您可能需要嘗試使用適當的鍵進行數組查找,但這應該是您所需要的。 – Femi
非常感謝您的建議。剛剛提出你的答案。對象(stdClass)#15(1) {[「GetDatabaseResult」] =>對象(stdClass)#(1) – Raidenlee