如何解析TFL api

时间:2012-09-25 06:24:02

标签: android

我目前正致力于基于TFL的项目。我想解析此链接中提供的json文件:http://countdown.api.tfl.gov.uk/interfaces/ura/instant_V1 所以请帮帮我

3 个答案:

答案 0 :(得分:4)

此API不是 TFL API文档中编写的标准 JSON 。我们实际上最好解析为CSV,但要小心,因为我发现一些响应不一致,第一行可能有6个字符串,而第二行可能有5个,缺少的字段未标识为空字符串,只是省略。这种方式使用CSV解析器进行解析会导致错误,因为您可能永远不知道省略了什么。

我也搜索了解决方案,我能找到的最好的是另一个提供标准JSON的API,但只通过stopCode请求返回公交站点倒计时。

使用此链接访问它。 的 http://countdown.tfl.gov.uk/stopBoard/75288

我很惊讶为什么TFL将这个api用于他们自己的应用程序,但没有实现公共api来返回像这样的好的JSon。

答案 1 :(得分:0)

此API不是TFL API文档中编写的标准JSON。因此,在获取内容后,您可以更改该格式。使用此链接http://jsonlint.com/它将验证您的json格式。所以你可以很容易地理解json格式错误

获取内容后执行此操作

 JSONArray jArray = new JSONArray("["+ result.replaceAll("]", "],").toString() + "]")

现在你得到正确的json数组跳过jArray第0位这是 - URA Version array。

答案 2 :(得分:0)

根据TFL文档,它不是一个完整的JSON对象。您将每一行视为一个单独的JSON对象。这样,如果/当您转到流模式时,您可以继续接收对象并在它们流式传输时解释它们。您还可以使用JSON数组中的第一个元素来确定如何处理该特定行,或者在某些情况下,如果需要刷新基础数据。