我有一个复杂的JSON,正在尝试使用Jackson JSON解析。我有点困惑如何进入latLng对象来提取lat、lng值。这是JSON的一部分:
{
"results": [
{
"locations": [
{
"latLng": {
"lng": -76.85165,
"lat": 39.25108
},
"adminArea4": "Howard County",
"adminArea5Type": "City",
"adminArea4Type": "County",
这是我用Java编写的提取代码:
目前为止,这就是我使用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);
已解决 以下是我使用树模型解决该问题的方法,供日后参考:
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);
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(); - Ronnie Dove