5
ジャクソンJSONを使用して解析しようとしている複雑なJSONがあります。私はlatLngオブジェクトに入って、lat、lngの値を引き出す方法について少し混乱しています。これは、JSONの一部です:Jackson JSON Parserの使用:複合JSON?
{
"results": [
{
"locations": [
{
"latLng": {
"lng": -76.85165,
"lat": 39.25108
},
"adminArea4": "Howard County",
"adminArea5Type": "City",
"adminArea4Type": "County",
これは、私はそれを引き出すために、Javaでこれまで持っているものです。
public class parkJSON
{
public latLng _latLng;
public static class latLng
{
private String _lat, _lng;
public String getLat() { return _lat; }
public String getLon() { return _lng; }
}
}
と
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
parkJSON geo = mapper.readValue(parse, parkJSON.class);
System.out.println(mapper.writeValueAsString(geo));
String lat = geo._latLng.getLat();
String lon = geo._latLng.getLon();
output = lat + "," + lon;
System.out.println("Found Coordinates: " + output);
決議これはどのようです将来の参照用にTree Modelを使用して問題を解決しました。
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode rootNode = mapper.readTree(parse);
JsonNode firstResult = rootNode.get("results").get(0);
JsonNode location = firstResult.get("locations").get(0);
JsonNode latLng = location.get("latLng");
String lat = latLng.get("lat").asText();
String lng = latLng.get("lng").asText();
output = lat + "," + lng;
System.out.println("Found Coordinates: " + output);
ツリーモデルのメソッドを使用して作業しています。 –
ObjectMapper mapper = new ObjectMapper(); //再利用できる、グローバルに共有する mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES、false); JsonNode rootNode = mapper.readTree(parse); JsonNode firstResult = rootNode.get( "results")。get(0); JsonNode location = firstResult.get( "locations")。get(0); JsonNode latLng = location.get( "latLng"); 文字列lat = latLng.get( "lat")。asText(); 文字列lng = latLng.get( "lng")。asText(); –
それは素晴らしいです:-)あなたのプロジェクトで幸運。 – fvu