使用 Httpful PHP 解析来自 XML 或 JSON API 的响应
Parse response from XML or JSON API with Httpful PHP
我正在使用 Httpful PHP library 通过 JSON 或 XML 从 API 获取数据。我的代码非常简单,return 是 url 的响应,具有基本身份验证。
$url = "API_URL";
$response = \Httpful\Request::get($url)
->expectsXml() // or ->expectsJson()
->authenticateWith('USERNAME', 'PASSWORD')
->send();
echo "{$response}";
我成功显示了整个响应输出,但是如何return单个变量?
例如,如果我只想从每个人那里接收城市,这会是什么样子?我试过 echo "{$response->body->city}";
但似乎没有用。
return 由 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>
并将 header 切换为 JSON 的数据格式为:
[
{
"STREET1": ""
"STREET2": ""
"CITY": ""
"STATE": ""
"ZIP": ""
"COUNTRY": ""
"WORKPHONE": ""
}
]
从您的 JSON 结构来看,响应似乎是嵌套的。
所以我相信您需要像这样访问正文:
echo $response->body[0]->STREET1;
旁注:当您不知道如何导航时,通过 var_dump($response)
来检查您的 $response
总是很有用的。只需查看生成的结构通常就会很清楚答案!
我正在使用 Httpful PHP library 通过 JSON 或 XML 从 API 获取数据。我的代码非常简单,return 是 url 的响应,具有基本身份验证。
$url = "API_URL";
$response = \Httpful\Request::get($url)
->expectsXml() // or ->expectsJson()
->authenticateWith('USERNAME', 'PASSWORD')
->send();
echo "{$response}";
我成功显示了整个响应输出,但是如何return单个变量?
例如,如果我只想从每个人那里接收城市,这会是什么样子?我试过 echo "{$response->body->city}";
但似乎没有用。
return 由 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>
并将 header 切换为 JSON 的数据格式为:
[
{
"STREET1": ""
"STREET2": ""
"CITY": ""
"STATE": ""
"ZIP": ""
"COUNTRY": ""
"WORKPHONE": ""
}
]
从您的 JSON 结构来看,响应似乎是嵌套的。
所以我相信您需要像这样访问正文:
echo $response->body[0]->STREET1;
旁注:当您不知道如何导航时,通过 var_dump($response)
来检查您的 $response
总是很有用的。只需查看生成的结构通常就会很清楚答案!