我正在使用谷歌地理编码 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();
我已经阅读了 Jackson Api 中关于 JsonNode 和 Tree 的文档,但似乎它们仅在您想遍历整个树时才有用。
仅获取特定节点的最简单方法是什么?