Google ジオコーディング API を使用して逆ジオコーディングを行っています。
結果はJsonで返され、次の方法で解析しています-
Map<String, Object> parsedJson = new ObjectMapper().readValue(
response.getEntity(String.class),
new TypeReference<Map<String, Object>>() {
});
List<Object> results = (List<Object>) parsedJson.get("results");
// From first result get geometry details
Map<String, Object> geometry = (Map<String, Object>) ((Map<String, Object>) results
.get(0)).get("geometry");
Map<String, Object> location = (Map<String, Object>) geometry
.get("location");
Map<String, Double> coordinates = new HashMap<String, Double>();
coordinates.put("latitude", (Double) location.get("lat"));
coordinates.put("longitude", (Double) location.get("lng"));
response には、サーバーから返された Json が含まれます。
このすべてを経ることなく、場所ノードへの直接参照を取得することは可能ですか? たとえば、次のようなものがあります-
new ObjectMapper().readValue(json).findNodeByName("lat").getFloatValue();
JsonNode と Tree in Jackson Api のドキュメントを読みましたが、ツリー全体をトラバースしたい場合にのみ役立つようです。
特定のノードのみを取得する最も簡単な方法は何ですか?