Tôi có một JSON phức tạp mà tôi đang cố gắng phân tích cú pháp bằng cách sử dụng JSON JSON. Tôi là một chút bối rối về làm thế nào để có được vào các đối tượng latLng để kéo ra các giá trị lat, lng. Đây là một phần của JSON:Sử dụng trình phân tích cú pháp JSON JSON: JSON phức tạp?
{
"results": [
{
"locations": [
{
"latLng": {
"lng": -76.85165,
"lat": 39.25108
},
"adminArea4": "Howard County",
"adminArea5Type": "City",
"adminArea4Type": "County",
Đây là những gì tôi có cho đến nay trong Java để kéo nó ra:
public class parkJSON
{
public latLng _latLng;
public static class latLng
{
private String _lat, _lng;
public String getLat() { return _lat; }
public String getLon() { return _lng; }
}
}
và
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);
QUYẾT Đây là cách tôi giải quyết vấn đề bằng cách sử dụng Mô hình cây để tham khảo trong tương lai:
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);
Tôi làm cho nó hoạt động bằng phương pháp mô hình cây –
Trình ánh xạ ObjectMapper = new ObjectMapper(); // có thể sử dụng lại, chia sẻ toàn cầu mapper.configure (DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, sai); JsonNode rootNode = mapper.readTree (phân tích cú pháp); JsonNode firstResult = rootNode.get ("kết quả"). Get (0); JsonNode location = firstResult.get ("vị trí"). Get (0); JsonNode latLng = location.get ("latLng"); Chuỗi lat = latLng.get ("lat"). AsText(); Chuỗi lng = latLng.get ("lng"). AsText(); –
Thật tuyệt vời :-) Chúc bạn may mắn với dự án của mình. – fvu