我正在尝试使用Google Maps
API来获取路线时间。我希望创建一个URL,获取JSON响应,然后检查该响应的旅行持续时间。创建JSON对象后,我在导航时会遇到麻烦。对我来说,这表明我要么弄乱了获取响应,要么浏览JSON对象。如果您能窥见我从网络教程中拼凑而成的零碎代码,我将不胜感激。
此代码旨在获取响应。它被try / catch包围,并且没有触发任何错误。
String stringUrl = <URL GOES HERE>;
URL url = new URL(stringUrl);
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
{
BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
String strLine = null;
while ((strLine = input.readLine()) != null)
{
response.append(strLine);
}
input.close();
}
String jsonOutput = response.toString();
这段代码的目的是获取该输出并将其解析为最终的字符串,即持续时间,这是由该stackoverflow答案针对类似问题得出的。
JSONObject jsonObject = new JSONObject(jsonOutput);
JSONObject routeObject = jsonObject.getJSONObject("routes");
JSONObject legsObject = routeObject.getJSONObject("legs");
JSONObject durationObject = legsObject.getJSONObject("duration");
String duration = durationObject.getString("text");
我在第二个块的第二行捕获了一个JSON异常。谁能帮助解决此问题?还是建议一种更简单的方法来获取相同的数据?
编辑:由于这里第一个有用的答案(从aromero),后半部分现在看起来像:
JSONObject jsonObject = new JSONObject(responseText);
JSONArray routeObject = jsonObject.getJSONArray("routes");
JSONArray legsObject = routeObject.getJSONArray(2); ***error***
JSONObject durationObject = legsObject.getJSONObject(1);
String duration = durationObject.getString("text");
但是它仍然抛出JSON异常,只是现在它在第三行之后。我敢肯定,这很容易解决,但我真的很感谢您的帮助。
JSON文件示例的相关部分如下所示:
{
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 34.092810,
"lng" : -118.328860
},
"southwest" : {
"lat" : 33.995590,
"lng" : -118.446040
}
},
"copyrights" : "Map data ©2011 Google",
"legs" : [
{
"distance" : {
"text" : "12.9 mi",
"value" : 20807
},
"duration" : {
"text" : "27 mins",
"value" : 1619
},
“ routes”是一个数组,而不是using getJSONObject
,使用getJSONArray
“腿”也是一个数组。
JSONObject jsonObject = new JSONObject(responseText);
// routesArray contains ALL routes
JSONArray routesArray = jsonObject.getJSONArray("routes");
// Grab the first route
JSONObject route = routesArray.getJSONObject(0);
// Take all legs from the route
JSONArray legs = route.getJSONArray("legs");
// Grab first leg
JSONObject leg = legs.getJSONObject(0);
JSONObject durationObject = leg.getJSONObject("duration");
String duration = durationObject.getString("text");
问题内容: 我正在尝试存储从以下请求中获取的JSON中的JSON … 得到的JSON从获得 的身体 是下面的,正如你可以看到有是JSON内的JSON,我怎么能存储 的是 JSON在 NSDictionary中 ,你可以看到,JSON是引号之间。 问题答案: 实际上,您拥有的是:经典JSON,其中有一个字符串“代表” JSON。 因此,由于我们可以这样做: NSData <=> NSString N
怎么啦?
问题内容: 我在Android的JSON解析中进行了很多搜索,但并不太确定。关于JSON解析,实际上有一个简短的想法,但还不清楚。 如何在应用程序中实现JSON解析? 问题答案: 这是一个非常简单的JSON字符串 为了得到它的值,使用像这样: 这是一个稍微复杂的json字符串 为了从此用途中提取值 希望这个对你有帮助...........
问题内容: 我已经完成了有关iOS中JSON的Raywenderlich教程,但是我很难将其调整为适合自己的JSON文件。这是 我的JSON : 这是 我的代码 : 日志返回。 问题答案: 你这样做是不对的。您已正确将JSON数据填充到字典(名为)中。但你有一个(被称为你的主要内部)和价值的是内部数组。 正确的代码是: 了解概念。这取决于你的内心里有什么。如果它是一个数组(在Values内部),则
问题内容: 我正在为现有网站创建一个应用程序。他们目前具有以下格式的JSON: 他们使用Java脚本将\字符转义后解析。 我的问题是当我使用以下命令在iOS中解析它时: 并这样做: 而不是我得到了对象。 该网站已经投入生产,所以我不能要求他们更改现有结构以返回适当的对象。对他们来说,这将是很多工作。 因此,在他们改变基础结构之前,有什么方法可以使它们像在它们上面一样地工作吗? 任何帮助/建议对我都
问题内容: 有没有人能够找到一种在Swift 3中解析JSON文件的方法?我已经能够获得返回的数据,但是在将数据分解为特定字段方面我没有成功。我会发布示例代码,但是我经历了很多不同的方法,但是都没有成功。我想解析的基本格式是这样的。提前致谢。 问题答案: 你试过了吗? Swift有时会产生一些非常奇怪的语法。 JSON对象层次结构中的所有内容最终都被包装为可选(即)。下标返回一个非可选的。对于此J
我也被他们的支持吓坏了,我只得到了一般的“嘿,你看过我们的常见问题吗?”对电子邮件的答复。
问题内容: 我在解码json字符串时遇到困难。以下是我的json字符串: 任何人都可以给我一个解决方案,以解决如何在Android中解析此问题… 问题答案: 可以使用以下代码解析此json。