下面是检索到的JSON,我已尝试了很多可能性,以便获取“status”的值,并在“geometry.location”中获取“lat”,“lng”。
我是JAVA和JSON的新手,我花了8个多小时,坐在电脑前尝试不同的解决方案,但它失败了..请帮帮我
{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
},
{
"long_name" : "Amphitheatre Parkway",
"short_name" : "Amphitheatre Pkwy",
"types" : [ "route" ]
},
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara County",
"short_name" : "Santa Clara County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "California",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "94043",
"short_name" : "94043",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
"geometry" : {
"location" : {
"lat" : 37.4224764,
"lng" : -122.0842499
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 37.4238253802915,
"lng" : -122.0829009197085
},
"southwest" : {
"lat" : 37.4211274197085,
"lng" : -122.0855988802915
}
}
},
"place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
无法检索“状态”
JSONObject status = result.getJSONObject("status");
它无法检索“几何”以及“lat”和“lng”
JSONArray array = result.getJSONArray("results");
for (int i = 0; i < array.length(); ++i) {
JSONObject rec = array.getJSONObject(2);
}
答案 0 :(得分:0)
您拥有的一个选项是使用JSON Path。在JSON路径中,用于检索示例数据中“状态”的表达式只是.status
。 Google为此here提供了一个很好的库。您可以测试JSON路径here。
您可以通过Google搜索在JSON路径上找到许多示例/教程。我很快就发现了一个似乎很全面的问题是here。
答案 1 :(得分:0)
getJSONObject()返回一个对象,而不是值。尝试getString(“result”)或某些等价物:)
答案 2 :(得分:0)
第一个不起作用,因为对象中的"status"
是String,而不是对象。 String status = result.getString("status");
应该有效。 (我猜你得到的是ClassCastException
?)
第二位失败是因为您试图在array
的索引2处获取对象,但它只有一个条目。很确定你的意思是在循环中放置i
而不是2。
答案 3 :(得分:-1)
JSONObject适用于处理简单的json数据结构,例如从Hello Worlds等开始。然而,您尝试处理的json结构非常难以使用JSONObject进行解析。请停止尝试使用错误的工具进行工作。切换到更快的xml Jackson Json库。在你浪费的8个小时里,你已经学会了如何使用杰克逊并成为一名Json忍者。