使用Httpful PHP解析来自XML或JSON API的响应
我使用从使用JSON或XML的API获取数据。我的代码非常简单,通过基本身份验证从url返回响应使用Httpful PHP解析来自XML或JSON API的响应,php,json,xml,httpful,Php,Json,Xml,Httpful,我使用从使用JSON或XML的API获取数据。我的代码非常简单,通过基本身份验证从url返回响应 $url = "API_URL"; $response = \Httpful\Request::get($url) ->expectsXml() // or ->expectsJson() ->authenticateWith('USERNAME', 'PASSWORD') ->send(); echo "{$response}"; 我成功地显示了整
$url = "API_URL";
$response = \Httpful\Request::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结构来看,响应似乎是嵌套的
所以我相信你需要像这样接近身体:
echo $response->body[0]->STREET1;
旁注:当您不知道如何导航时,通过执行var\u dump($response)
检查$response
总是很有用的。只要看看结果结构,答案通常就非常清楚了 @jszobody是的,这起作用了!它似乎也区分大小写<代码>$response->body[0]->CITY
是正确的输出。太棒了,很高兴提供帮助!我只是把它贴在下面作为答案,你能接受吗?
echo $response->body[0]->STREET1;