title: Using Jackson JSON Parser: Complex JSON?
body: <p>I have a complex JSON that I am trying to parse using Jackson JSON. I am a little confused about how to get into the latLng object to pull out the lat,lng values.  This is part of the JSON:</p>
  
  <pre><code>{
      "results": [
          {
              "locations": [
                  {
                      "latLng": {
                          "lng": -76.85165,
                          "lat": 39.25108
                      },
                      "adminArea4": "Howard County",
                      "adminArea5Type": "City",
                      "adminArea4Type": "County",
  </code></pre>
  
  <p>This is what I have so far in Java to pull it out:</p>
  
  <pre><code>public class parkJSON
  {
      public latLng _latLng;
  
      public static class latLng
      {
          private String _lat, _lng;
          public String getLat() { return _lat; }
          public String getLon() { return _lng; }
      } 
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>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);
  </code></pre>
  
  <p><em>RESOLVED</em> This is how I solved the issue by using Tree Model for future reference:</p>
  
  <pre><code>            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);
  </code></pre>