有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组使用Java中的getJSONArray()和getJSONObject()从JSON文件中获取元素

我想浏览下面的json文件,并将该部分保存在“坐标”之后

json文件:

{"type": "FeatureCollection","features": [{"type": "Feature","properties": {},"geometry": {"type": "LineString","coordinates": [[4.354282,52.032195],[4.354087,52.032462],[4.353783,52.032962],[4.353579,52.033437],[4.353333,52.034151],[4.352991,52.03545],[4.352517,52.037002],[4.352442,52.037352],[4.352368,52.0378],[4.352336,52.038238],[4.352331,52.039962],[4.352346,52.040706]
    ]
  }
}

] }

我见过使用getJSONArray()和getJSONObject()的代码herehere。这些信息帮助我选择了“几何体”树

到目前为止,我的代码(test2.geojson是上面提到的json文件):

        String output = new String(Files.readAllBytes(Paths
                .get("C:\\Users\\****\\Desktop\\test2.geojson")));

        JSONObject obj = new JSONObject(output);

        JSONArray jsonArray = obj.getJSONArray("features");
        System.out.println(jsonArray);

但是,这只会重新排列文件,并将第一部分附加到文件末尾

[{"geometry":{"coordinates":[[4.354282,52.032195],[4.354087,52.032462],[4.353783,52.032962],[4.353579,52.033437],[4.353333,52.034151],[4.352991,52.03545],[4.352517,52.037002],[4.352442,52.037352],[4.352368,52.0378],[4.352336,52.038238],[4.352331,52.039962],[4.352346,52.040706]],"type":"LineString"},"type":"Feature","properties":{}}]

获得以下所需输出的任何解决方案:

[[4.354282,52.032195],[4.354087,52.032462],[4.353783,52.032962],[4.353579,52.033437],[4.353333,52.034151],[4.352991,52.03545],[4.352517,52.037002],[4.352442,52.037352],[4.352368,52.0378],[4.352336,52.038238],[4.352331,52.039962],[4.352346,52.040706]
    ]
  }
}

] }

提前谢谢。 干杯


共 (1) 个答案

  1. # 1 楼答案

    由于“geometry”是一个json对象{},“coordinates”是一个json数组[]

    你应该

    JSONArray jsonArray = obj.getJSONArray("features");
    JSONArray resultArray = jsonArray.getJSONObject[0].getJSONObject("geometry").getJSONArray("coordinates")