Разбор ответа от XML или JSON API с переполнением стека Httpful

Я использую Httpful PHP библиотека получать данные из API, используя JSON или XML. Мой код очень прост и возвращает ответ от URL с базовой аутентификацией.

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

Я успешно отображаю весь ответ, но как мне вернуть одну переменную?

Например, если бы я хотел получить город от каждого человека, как бы это выглядело? я пытался echo "{$response->body->city}"; но это не похоже на работу.

XML, который возвращается API, отформатирован так:

<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": ""}
]

1

Решение

Если посмотреть на структуру JSON, то получается, что ответ является вложенным.

Поэтому я считаю, что вам нужно получить доступ к телу так:

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

Примечание: всегда полезно изучить $response просто делая var_dump($response) когда вы не можете понять, как перемещаться по нему. Простой взгляд на получающуюся структуру обычно делает ответ совершенно ясным!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]