首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -如何遍历此json响应?

PHP -如何遍历此json响应?
EN

Stack Overflow用户
提问于 2016-03-21 22:44:05
回答 1查看 185关注 0票数 0

我有一个来自API的json响应,我不能用PHP中的"json_decode“从它创建一个数组来将它作为数组进行迭代。我总是得到"NULL",当我使用"var_dump“打印输出时,我的"json_decode”返回了什么。该接口响应的响应头是"application/ json ",但我不熟悉这个json格式。

来自API的json响应如下所示:

代码语言:javascript
运行
复制
[1,"Example name","307","7","Test","455",1458572100000]
[1,"Another example name","146","7","Test","455",1458571500000]
[1,"Test","304","7","Test","455",1458572280000]
[1,"Example name 3","163","7","Hello world","455",1458571080000]

这是单个API请求的结果/响应。现在,例如,我想要获取每一行/对象的倒数第二个数字(在本例中为455),或者,例如,名称(第二个值:“example name”、"Another example name“、"Test”等)。我怎样才能用php和这个json格式做到这一点?如果我能从中得到一个可以迭代的数组,那就太好了。

它是一个本地实时总线到达应用程序接口,但它与content.tfl.gov.uk/…相似,我在PHP中使用file_get_contents通过一个简单的http/get请求来调用这个API

代码语言:javascript
运行
复制
"/interfaces/ura/instant_V1?returnList=stopID,stopPointName,LineID,DestinationT‌​ext,estimatedTime,vehicleID&vehicleID=455")
EN

回答 1

Stack Overflow用户

发布于 2016-03-21 22:57:44

需要澄清的是,您要返回的是而不是JSON格式。但是,如果这就是您所得到的,那么您需要一个解决方案:)

我将忽略第一个和最后一个字符,并使用str_getcsv()将逗号分隔的字符串作为数组返回:

代码语言:javascript
运行
复制
$input = '[1,"Example name","307","7","Test","455",1458572100000]';
$array = str_getcsv(substr($input, 1, -1));

如果您有多行,那么在使用以下命令执行上述操作之前,您需要将它们拆分为单独的行:

代码语言:javascript
运行
复制
$lines = explode($input, "]");
$array = array();
foreach($lines AS $line) {
    $input = '[1,"Example name","307","7","Test","455",1458572100000]';
    $array[] = str_getcsv(substr($input, 1, -1));
}

根据下面的评论,更新为显示]的分隔符,而不是\n

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36134126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档