我正在使用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"));
Run Code Online (Sandbox Code Playgroud)
其中响应包含从服务器返回的Json。
是否可以直接参考位置节点而不进行所有这些操作?例如,有类似-
new ObjectMapper().readValue(json).findNodeByName("lat").getFloatValue();
Run Code Online (Sandbox Code Playgroud)
我已经阅读了Jackson Api中有关JsonNode和Tree的文档,但似乎仅当您要遍历整个树时,它们才有用。
仅获取特定节点的最简单方法是什么?
+1 Michael Hixson指出了地理编码库。
但是,在浏览了文档之后,我终于找到了解决方案-
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(mapper.getJsonFactory()
.createJsonParser(response.getEntity(String.class)));
rootNode.findValue("lat").getDoubleValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7844 次 |
| 最近记录: |