使用 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 总是很有用的。只需查看生成的结构通常就会很清楚答案!