0

I am running into an issue where my logic is unable to retrieve the first two coordinates in a JSON array from a twitter feed.

Below is the logic I have for first validating that the node is not null and if its not null then I attempt to retrieve the first two lon/lat coordinates from the plane.

Problem is its never actually getting into the first if statement. Thus skipping this logic entirely. What am I doing wrong here?

Logic

          if(root.path("place").get("bounding_box") != null
                        && root.path("place").path("bounding_box").get("coordinates") != null){
                    lon = root.path("place").path("bounding_box").path("coordinates").get(0).get(0).get(0).textValue();
                    lat = root.path("place").path("bounding_box").path("coordinates").get(0).get(0).get(1).textValue();

                    if(root.path("place").get("full_name") != null) {
                        userlocation = root.path("place").get("full_name").textValue();
                    }
                }

Sample JSON String

{  
   "created_at":"Fri Feb 05 01:36:27 +0000 2016",
   "id":695420692209111000,
   "id_str":"695420692209111040",
   "text":"RT @Sayhop: When your boyfriend doesn't watch your show  #RealFansGetIt X1 @XFINITY #ad https://t.co/E4H3zO92nV",
   "source":"<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
   "truncated":false,
   "in_reply_to_status_id":null,
   "in_reply_to_status_id_str":null,
   "in_reply_to_user_id":null,
   "in_reply_to_user_id_str":null,
   "in_reply_to_screen_name":null,
   "user":{  
      "id":278162142,
      "id_str":"278162142",
      "name":"Alexeia  ♡",
      "screen_name":"_vievelv_",
      "location":null,
      "url":null,
      "description":"Itty Bitty ❤️",
      "protected":false,
      "verified":false,
      "followers_count":1571,
      "friends_count":1246,
      "listed_count":0,
      "favourites_count":344,
      "statuses_count":21194,
      "created_at":"Wed Apr 06 18:46:36 +0000 2011",
      "utc_offset":-18000,
      "time_zone":"Eastern Time (US & Canada)",
      "geo_enabled":true,
      "lang":"en",
      "contributors_enabled":false,
      "is_translator":false,
      "profile_background_color":"642D8B",
      "profile_background_image_url":"http://pbs.twimg.com/profile_background_images/656263432/w1zrzuisccmzjk0qhv5h.jpeg",
      "profile_background_image_url_https":"https://pbs.twimg.com/profile_background_images/656263432/w1zrzuisccmzjk0qhv5h.jpeg",
      "profile_background_tile":true,
      "profile_link_color":"FF00EE",
      "profile_sidebar_border_color":"65B0DA",
      "profile_sidebar_fill_color":"7AC3EE",
      "profile_text_color":"3D1957",
      "profile_use_background_image":true,
      "profile_image_url":"http://pbs.twimg.com/profile_images/652259214774128640/O8LDMd8c_normal.jpg",
      "profile_image_url_https":"https://pbs.twimg.com/profile_images/652259214774128640/O8LDMd8c_normal.jpg",
      "profile_banner_url":"https://pbs.twimg.com/profile_banners/278162142/1441077378",
      "default_profile":false,
      "default_profile_image":false,
      "following":null,
      "follow_request_sent":null,
      "notifications":null
   },
   "geo":null,
   "coordinates":null,
   "place":null,
   "contributors":null,
   "retweeted_status":{  
      "created_at":"Fri Jan 22 20:19:36 +0000 2016",
      "id":690629910960799700,
      "id_str":"690629910960799744",
      "text":"When your boyfriend doesn't watch your show  #RealFansGetIt X1 @XFINITY #ad https://t.co/E4H3zO92nV",
      "source":"<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
      "truncated":false,
      "in_reply_to_status_id":null,
      "in_reply_to_status_id_str":null,
      "in_reply_to_user_id":null,
      "in_reply_to_user_id_str":null,
      "in_reply_to_screen_name":null,
      "user":{  
         "id":25011208,
         "id_str":"25011208",
         "name":"Sara Hopkins",
         "screen_name":"Sayhop",
         "location":"Atlanta, GA",
         "url":"http://shortyawards.com/8th/sayhop",
         "description":"never bored || TV host/social media creator ⭐️⭐️⭐️⭐️⭐️ IG/snapchat: sayhop",
         "protected":false,
         "verified":true,
         "followers_count":50761,
         "friends_count":998,
         "listed_count":98,
         "favourites_count":13178,
         "statuses_count":4231,
         "created_at":"Wed Mar 18 02:31:51 +0000 2009",
         "utc_offset":-18000,
         "time_zone":"Eastern Time (US & Canada)",
         "geo_enabled":true,
         "lang":"en",
         "contributors_enabled":false,
         "is_translator":false,
         "profile_background_color":"000000",
         "profile_background_image_url":"http://pbs.twimg.com/profile_background_images/260784476/Twitter1.jpg",
         "profile_background_image_url_https":"https://pbs.twimg.com/profile_background_images/260784476/Twitter1.jpg",
         "profile_background_tile":false,
         "profile_link_color":"51D4C2",
         "profile_sidebar_border_color":"DBCFAD",
         "profile_sidebar_fill_color":"0F0E0B",
         "profile_text_color":"AD4C9E",
         "profile_use_background_image":true,
         "profile_image_url":"http://pbs.twimg.com/profile_images/688163946512007168/CRqMjOgp_normal.jpg",
         "profile_image_url_https":"https://pbs.twimg.com/profile_images/688163946512007168/CRqMjOgp_normal.jpg",
         "profile_banner_url":"https://pbs.twimg.com/profile_banners/25011208/1414548876",
         "default_profile":false,
         "default_profile_image":false,
         "following":null,
         "follow_request_sent":null,
         "notifications":null
      },
      "geo":null,
      "coordinates":null,
      "place":{  
         "id":"5a110d312052166f",
         "url":"https://api.twitter.com/1.1/geo/id/5a110d312052166f.json",
         "place_type":"city",
         "name":"San Francisco",
         "full_name":"San Francisco, CA",
         "country_code":"US",
         "country":"United States",
         "bounding_box":{  
            "type":"Polygon",
            "coordinates":[  
               [  
                  [  
                     -122.514926,
                     37.708075
                  ],
                  [  
                     -122.514926,
                     37.833238
                  ],
                  [  
                     -122.357031,
                     37.833238
                  ],
                  [  
                     -122.357031,
                     37.708075
                  ]
               ]
            ]
         },
         "attributes":{  

         }
      },
      "contributors":null,
      "is_quote_status":false,
      "retweet_count":4276,
      "favorite_count":14129,
      "entities":{  
         "hashtags":[  
            {  
               "text":"RealFansGetIt",
               "indices":[  
                  45,
                  59
               ]
            },
            {  
               "text":"ad",
               "indices":[  
                  72,
                  75
               ]
            }
         ],
         "urls":[  

         ],
         "user_mentions":[  
            {  
               "screen_name":"XFINITY",
               "name":"XFINITY",
               "id":14996251,
               "id_str":"14996251",
               "indices":[  
                  63,
                  71
               ]
            }
         ],
         "symbols":[  

         ],
         "media":[  
            {  
               "id":690629837333999600,
               "id_str":"690629837333999617",
               "indices":[  
                  76,
                  99
               ],
               "media_url":"http://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
               "media_url_https":"https://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
               "url":"https://t.co/E4H3zO92nV",
               "display_url":"pic.twitter.com/E4H3zO92nV",
               "expanded_url":"http://twitter.com/Sayhop/status/690629910960799744/video/1",
               "type":"photo",
               "sizes":{  
                  "thumb":{  
                     "w":150,
                     "h":150,
                     "resize":"crop"
                  },
                  "medium":{  
                     "w":600,
                     "h":338,
                     "resize":"fit"
                  },
                  "small":{  
                     "w":340,
                     "h":191,
                     "resize":"fit"
                  },
                  "large":{  
                     "w":1024,
                     "h":576,
                     "resize":"fit"
                  }
               }
            }
         ]
      },
      "extended_entities":{  
         "media":[  
            {  
               "id":690629837333999600,
               "id_str":"690629837333999617",
               "indices":[  
                  76,
                  99
               ],
               "media_url":"http://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
               "media_url_https":"https://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
               "url":"https://t.co/E4H3zO92nV",
               "display_url":"pic.twitter.com/E4H3zO92nV",
               "expanded_url":"http://twitter.com/Sayhop/status/690629910960799744/video/1",
               "type":"video",
               "sizes":{  
                  "thumb":{  
                     "w":150,
                     "h":150,
                     "resize":"crop"
                  },
                  "medium":{  
                     "w":600,
                     "h":338,
                     "resize":"fit"
                  },
                  "small":{  
                     "w":340,
                     "h":191,
                     "resize":"fit"
                  },
                  "large":{  
                     "w":1024,
                     "h":576,
                     "resize":"fit"
                  }
               },
               "video_info":{  
                  "aspect_ratio":[  
                     16,
                     9
                  ],
                  "duration_millis":11233,
                  "variants":[  
                     {  
                        "bitrate":2176000,
                        "content_type":"video/mp4",
                        "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/1280x720/OY7P8akLAqM_C2J1.mp4"
                     },
                     {  
                        "bitrate":320000,
                        "content_type":"video/mp4",
                        "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/320x180/HlqkHHrC7SK6cgR8.mp4"
                     },
                     {  
                        "bitrate":832000,
                        "content_type":"video/webm",
                        "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/640x360/FfLYyLagrUn8VGgy.webm"
                     },
                     {  
                        "bitrate":832000,
                        "content_type":"video/mp4",
                        "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/640x360/FfLYyLagrUn8VGgy.mp4"
                     },
                     {  
                        "content_type":"application/x-mpegURL",
                        "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/pl/cXSu_jFCOj5Wcte5.m3u8"
                     },
                     {  
                        "content_type":"application/dash+xml",
                        "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/pl/cXSu_jFCOj5Wcte5.mpd"
                     }
                  ]
               }
            }
         ]
      },
      "favorited":false,
      "retweeted":false,
      "possibly_sensitive":false,
      "filter_level":"low",
      "lang":"en"
   },
   "is_quote_status":false,
   "retweet_count":0,
   "favorite_count":0,
   "entities":{  
      "hashtags":[  
         {  
            "text":"RealFansGetIt",
            "indices":[  
               57,
               71
            ]
         },
         {  
            "text":"ad",
            "indices":[  
               84,
               87
            ]
         }
      ],
      "urls":[  

      ],
      "user_mentions":[  
         {  
            "screen_name":"Sayhop",
            "name":"Sara Hopkins",
            "id":25011208,
            "id_str":"25011208",
            "indices":[  
               3,
               10
            ]
         },
         {  
            "screen_name":"XFINITY",
            "name":"XFINITY",
            "id":14996251,
            "id_str":"14996251",
            "indices":[  
               75,
               83
            ]
         }
      ],
      "symbols":[  

      ],
      "media":[  
         {  
            "id":690629837333999600,
            "id_str":"690629837333999617",
            "indices":[  
               88,
               111
            ],
            "media_url":"http://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
            "media_url_https":"https://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
            "url":"https://t.co/E4H3zO92nV",
            "display_url":"pic.twitter.com/E4H3zO92nV",
            "expanded_url":"http://twitter.com/Sayhop/status/690629910960799744/video/1",
            "type":"photo",
            "sizes":{  
               "thumb":{  
                  "w":150,
                  "h":150,
                  "resize":"crop"
               },
               "medium":{  
                  "w":600,
                  "h":338,
                  "resize":"fit"
               },
               "small":{  
                  "w":340,
                  "h":191,
                  "resize":"fit"
               },
               "large":{  
                  "w":1024,
                  "h":576,
                  "resize":"fit"
               }
            },
            "source_status_id":690629910960799700,
            "source_status_id_str":"690629910960799744",
            "source_user_id":25011208,
            "source_user_id_str":"25011208"
         }
      ]
   },
   "extended_entities":{  
      "media":[  
         {  
            "id":690629837333999600,
            "id_str":"690629837333999617",
            "indices":[  
               88,
               111
            ],
            "media_url":"http://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
            "media_url_https":"https://pbs.twimg.com/ext_tw_video_thumb/690629837333999617/pu/img/ofj5PsOGsynefono.jpg",
            "url":"https://t.co/E4H3zO92nV",
            "display_url":"pic.twitter.com/E4H3zO92nV",
            "expanded_url":"http://twitter.com/Sayhop/status/690629910960799744/video/1",
            "type":"video",
            "sizes":{  
               "thumb":{  
                  "w":150,
                  "h":150,
                  "resize":"crop"
               },
               "medium":{  
                  "w":600,
                  "h":338,
                  "resize":"fit"
               },
               "small":{  
                  "w":340,
                  "h":191,
                  "resize":"fit"
               },
               "large":{  
                  "w":1024,
                  "h":576,
                  "resize":"fit"
               }
            },
            "source_status_id":690629910960799700,
            "source_status_id_str":"690629910960799744",
            "source_user_id":25011208,
            "source_user_id_str":"25011208",
            "video_info":{  
               "aspect_ratio":[  
                  16,
                  9
               ],
               "duration_millis":11233,
               "variants":[  
                  {  
                     "bitrate":2176000,
                     "content_type":"video/mp4",
                     "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/1280x720/OY7P8akLAqM_C2J1.mp4"
                  },
                  {  
                     "bitrate":320000,
                     "content_type":"video/mp4",
                     "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/320x180/HlqkHHrC7SK6cgR8.mp4"
                  },
                  {  
                     "bitrate":832000,
                     "content_type":"video/webm",
                     "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/640x360/FfLYyLagrUn8VGgy.webm"
                  },
                  {  
                     "bitrate":832000,
                     "content_type":"video/mp4",
                     "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/vid/640x360/FfLYyLagrUn8VGgy.mp4"
                  },
                  {  
                     "content_type":"application/x-mpegURL",
                     "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/pl/cXSu_jFCOj5Wcte5.m3u8"
                  },
                  {  
                     "content_type":"application/dash+xml",
                     "url":"https://video.twimg.com/ext_tw_video/690629837333999617/pu/pl/cXSu_jFCOj5Wcte5.mpd"
                  }
               ]
            }
         }
      ]
   },
   "favorited":false,
   "retweeted":false,
   "possibly_sensitive":false,
   "filter_level":"low",
   "lang":"en",
   "timestamp_ms":"1454636187971"
}
4
  • Using any libraries like jackson etc? Please see here for an example to retrieve the data. Commented Feb 5, 2016 at 2:55
  • I am using Jackson, forgot to mention that in the original post Commented Feb 5, 2016 at 2:59
  • The issue isn't also retrieving the data, its validating the data. I am pretty sure my statement for retrieving the data is still correct. I just have no idea what Jackson actually throws when it cant find an object. Commented Feb 5, 2016 at 4:18
  • Do you mean something like this Commented Feb 5, 2016 at 4:25

1 Answer 1

1

In this JSON, there are two keys with name place. The first key has value as null. Your code is just retrieving value of first place. and since the value of this key is null. It is not executing the logic.

The next place key comes under the retweeted_status block. So, If you want to run your logic then, you should use retweeted_status key first.

E.g. :

node.path("retweeted_status").path("place").get("bounding_box") 
Sign up to request clarification or add additional context in comments.

2 Comments

Holy cow, thank you so much, cant believe you spotted that completely missed it. thank you!
Am I also retrieving the data from the JSON array correctly for "bounding_box"? It seems to be a triple nested array.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.