Жрать 6: больше нет метода json() для ответов


ранее в жрать 5.3:

$response = $client->get('http://httpbin.org/get');
$array = $response->json(); // Yoohoo
var_dump($array[0]['origin']);

я мог бы легко получить массив PHP из ответа JSON. Теперь в Guzzle 6, я не знаю, как это сделать. Кажется, нет json() больше способ. Я (быстро) прочитал документ из последней версии и ничего не нашел о ответах JSON. Я думаю, что я что-то пропустил, может быть, есть новая концепция, которую я не понимаю (или, может быть, я не правильно прочитал).

Это (ниже) новый способ единственный путь?

$response = $client->get('http://httpbin.org/get');
$array = json_decode($response->getBody()->getContents(), true); // :'(
var_dump($array[0]['origin']);

или есть помощник или что-то подобное?

4 125

4 ответа:

Я использую json_decode($response->getBody()) теперь вместо $response->json().

Я подозреваю, что это может быть жертвой соответствия PSR-7.

вы переключаетесь на:

json_decode($response->getBody(), true)

вместо другого комментария, если вы хотите, чтобы он работал точно так же, как раньше, чтобы получить массивы вместо объектов.

Я использую $response->getBody()->getContents() чтобы получить JSON из ответа. Жрать версия 6.3.0.

добавлять ->getContents() не возвращает ответ jSON, вместо этого он возвращается в виде текста.

Вы можете просто использовать json_decode