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

在Java中使用getJSONArray()和getJSONObject()从JSON文件获取元素,java,arrays,json,object,element,Java,Arrays,Json,Object,Element,我想浏览下面的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],

我想浏览下面的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()和的代码。这些信息帮助我选择(在我的例子中)几何体树

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

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

[{"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]
    ]
  }
}
] }

提前谢谢。 干杯

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

你应该做什么

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

getJSONObject(“几何体”)给出以下错误。JSONArray类型中的方法getJSONObject(int)不适用于参数(字符串)。我正在使用org.json库。首先从jsonArray获取第一个对象,然后应用我的代码。谢谢您的帮助。getJSONArray[0]正在抛出:getJSONArray无法解析或不是字段。您是否也在使用org.json库?当然。@Camelaria ops,您应该使用jsonArray.getJSONObject(0)…而不是jsonArray.getJSONArray(0)…我的错,但是您也可以很容易地发现这一点~
JSONArray jsonArray = obj.getJSONArray("features");
JSONArray resultArray = jsonArray.getJSONObject[0].getJSONObject("geometry").getJSONArray("coordinates")