[已解决] 如何读取 Guzzle 的 Response 响应结果中的 JSON 数据?

问答 JobsLong ⋅ 于 1年前 ⋅ 最后回复由 kylesean 3周前 ⋅ 4937 阅读

使用 [Guzzle](https://github.com/guzzle/guzzle) 时出现的一个问题:

$client = new \GuzzleHttp\Client();

# 获取一个外部 API 接口:
$response = $client->get('http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=39.87186,116.479723&output=json&pois=1&ak=Your_AK');

# echo 结果
echo $response->getBody();

输出结果:

renderReverse&&renderReverse({"status":0,"result":{"location":{"lng":116.47972299999994,"lat":39.87186008036971},"formatted_address":"北京市朝阳区西燕东街","business":"十八里店,南磨房,潘家园"c869","zip":""}}})

目前有个疑问,因为现在 Respone 好像使用了 PSR-7 stream objects,不太理解我现在要使用 json 数据的话,如要如何去读取?


直接

json_decode($response->getBody());

个人加了调用 callback,忘记处理了,所以一直无法解析 json 数据

本文章首发在 Laravel China 社区

优帆远扬 —— 提供优质的软件外包服务

回复数量: 2
  • json_decode($response->getBody()->getContents(), true)

    1年前 1
  • \Guzzle\json_decode( (string) $response->getBody(), true);
    \Guzzle\json_decode( $response->getbody()->getContents(), true);
    \Guzzle\json_decode( $response->getbody()->__toString(), true);
    6个月前
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 250 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Composer 中文文档

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档