1

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

$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 的数据格式为:

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

1 回答 1

2

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

所以我相信你需要像这样访问身体:

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

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

于 2016-06-10T16:37:50.980 回答