使用Httpful PHP解析来自XML或JSON API的响应



我正在使用Httpful PHP库从使用JSON或XML的API获取数据。我的代码非常简单,通过基本身份验证从url返回响应。

$url = "API_URL";
$response = HttpfulRequest::get($url)
->expectsXml() // or ->expectsJson()
->authenticateWith('USERNAME', 'PASSWORD')
->send();
echo "{$response}";

我成功地显示了整个响应输出,但如何返回单个变量?

例如,如果我只想从每个人那里接收城市,这会是什么样子?我试过echo "{$response->body->city}";,但似乎不起作用。

api返回的XML格式如下:

<ArrayOfPERSON xmlns:i="xxx" xmlns="xxx">
<PERSON>
<CITY></CITY>
<COUNTRY></COUNTRY>
<STATE></STATE>
<STREET1></STREET1>
<STREET2></STREET2>
<WORKPHONE></WORKPHONE>
<ZIP></ZIP>
</PERSON>
</ArrayOfPERSON>

将标头切换为JSON会将数据格式化为:

[
{
"STREET1": ""
"STREET2": ""
"CITY": ""
"STATE": ""
"ZIP": ""
"COUNTRY": ""
"WORKPHONE": ""
}
]

从JSON结构来看,响应似乎是嵌套的。

所以我相信你需要这样接近身体:

echo $response->body[0]->STREET1;

旁注:当你不知道如何导航时,只需做一个var_dump($response)来检查你的$response总是很有用的。只看得到的结构通常会让答案很清楚!

相关内容

  • 没有找到相关文章