Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从嵌套数组中提取JSON数据?使用android_Java_Android_Arrays_Json_Google Maps Android Api 2 - Fatal编程技术网

Java 如何从嵌套数组中提取JSON数据?使用android

Java 如何从嵌套数组中提取JSON数据?使用android,java,android,arrays,json,google-maps-android-api-2,Java,Android,Arrays,Json,Google Maps Android Api 2,这是我的JSON结果,我需要在duration数组中获取文本。如何得到它 { "routes" : [ { "bounds" : { "northeast" : { "lat" : 19.0759817, "lng" : 80.27071789999999 }, "southwest" : { "la

这是我的JSON结果,我需要在duration数组中获取
文本。如何得到它

{
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : 19.0759817,
               "lng" : 80.27071789999999
            },
            "southwest" : {
               "lat" : 12.5100381,
               "lng" : 72.8776544
            }
         },
         "copyrights" : "Map data ©2015 Google",
         "legs" : [
            {
               "distance" : {
                  "text" : "1,334 km",
                  "value" : 1333618
               },
               "duration" : {
                  "text" : "17 hours 43 mins",
                  "value" : 63762
               },
               "end_address" : "Mumbai, Maharashtra, India",
               "end_location" : {
                  "lat" : 19.0759817,
                  "lng" : 72.8776544
               },
               "start_address" : "Chennai, Tamil Nadu, India",
               "start_location" : {
                  "lat" : 13.0826782,
                  "lng" : 80.27071789999999
               },
我已经尝试过使用此代码,因此我可以获得整个
距离
数组,但我只需要该数组中的
文本
元素

  JSONArray one = reader.getJSONArray("routes");

              for (int i = 0; i < one.length(); i++) {

                JSONObject two = one.getJSONObject(i);

                JSONArray three = two.getJSONArray("legs");
                for (int j = 0; j < three.length(); j++) {

                  JSONObject four = three.getJSONObject(j);

                     String str_long_name=four.getString("distance");

                 }

              }  
JSONArray one=reader.getJSONArray(“路由”);
对于(int i=0;i<1.length();i++){
JSONObject two=1.getJSONObject(i);
JSONArray三=2.getJSONArray(“腿”);
对于(int j=0;j
所以我尝试这样修改代码

 JSONArray one = reader.getJSONArray("routes");

      for (int i = 0; i < one.length(); i++) {

        JSONObject two = one.getJSONObject(i);

        JSONArray three = two.getJSONArray("legs");
        for (int j = 0; j < three.length(); j++) {

          JSONObject four = three.getJSONObject(j);
          JSONArray five = four.getJSONArray("distance");
          for (int  k= 0; k < five.length(); k++) {

              JSONObject six = five.getJSONObject(k);
              String str_long_name=six.getString("text");

          }                  

            }

      }
JSONArray one=reader.getJSONArray(“路由”);
对于(int i=0;i<1.length();i++){
JSONObject two=1.getJSONObject(i);
JSONArray三=2.getJSONArray(“腿”);
对于(int j=0;j

但它不起作用。它也没有显示任何错误。

JSONArray five=4.getJSONArray(“距离”)是错误的<代码>“距离”
是一个
JSONObject

请尝试以下代码

JSONObject five = four.getJSONObject("distance");
String str_long_name=five.getString("text");
System.out.println(str_long_name);
下面是完整的测试代码

import org.json.JSONArray;
import org.json.JSONObject;

public class Test {

public static void main(String[] args) {
    String str = "{\"routes\":[{\"bounds\":{\"northeast\":{\"lat\":19.0759817,\"lng\":80.27071789999999},\"southwest\":{\"lat\":12.5100381,\"lng\":72.8776544}},\"copyrights\":\"Map data ©2015 Google\",\"legs\":[{\"distance\":{\"text\":\"1,334 km\",\"value\":1333618},\"duration\":{\"text\":\"17 hours 43 mins\",\"value\":63762},\"end_address\":\"Mumbai, Maharashtra, India\",\"end_location\":{\"lat\":19.0759817,\"lng\":72.8776544},\"start_address\":\"Chennai, Tamil Nadu, India\",\"start_location\":{\"lat\":13.0826782,\"lng\":80.27071789999999}}]}]}";
    JSONObject reader = new JSONObject(str);
    JSONArray one = reader.getJSONArray("routes");

    for (int i = 0; i < one.length(); i++) {

      JSONObject two = one.getJSONObject(i);

      JSONArray three = two.getJSONArray("legs");
      for (int j = 0; j < three.length(); j++) {

        JSONObject four = three.getJSONObject(j);
        JSONObject five = four.getJSONObject("distance");
        String str_long_name=five.getString("text");
        System.out.println(str_long_name);

          }

    }
}
}
import org.json.JSONArray;
导入org.json.JSONObject;
公开课考试{
公共静态void main(字符串[]args){
10.0759817,“液化天然天然气(lng\:80.27071787878999999999},,,“西南”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”中国内地,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”,”路径字符串字符串字符串学生学生们::“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.70.787878787878787878787878结束地址\“:\”孟买,马哈拉施特拉邦,印度“,”终点位置“:{”拉特“:19.0759817,\”液化天然气“:72.8776544},\”起点地址“:”印度泰米尔纳德邦钦奈“,”起点位置“:{”拉特“:13.0826782,\”液化天然气“:80.270717899999}”;
JSONObject reader=新的JSONObject(str);
JSONArray one=reader.getJSONArray(“路由”);
对于(int i=0;i<1.length();i++){
JSONObject two=1.getJSONObject(i);
JSONArray三=2.getJSONArray(“腿”);
对于(int j=0;j
我很久以前上传了一个类来解析谷歌地图中的路线,请检查;)

如果你有错误,请把它贴在这里。这将帮助我们解决您的问题。我没有收到任何错误。申请被挂起我正在尝试接受,但6分钟后我们无法接受!这就是迟到的原因