如何解析谷歌的地方json

时间:2012-03-10 09:01:26

标签: android json google-api

我试图解析google places api的json结果。我用http方法调用它,然后用字符串返回json结果 我该如何解析它?我得到了doc和互联网上的两个博客(一个使用谷歌api库,一个似乎已经过时),并没有帮助我

我正在使用google的标准java JSONobject和Gson,但我无法找到解析它的好方法(我正在调用搜索位置方法) 您有什么推荐的吗? 谢谢你

嗨,抱歉忘记显示JSON响应:

{
   "html_attributions" : [
      "Listings by \u003ca href=\"http://www.yellowpages.ca/\"\u003eYellowPages.ca\u003c/a\u003e"
   ],
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : 45.39318670,
               "lng" : -75.68352930
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 45.40102170,
                  "lng" : -75.66752190
               },
               "southwest" : {
                  "lat" : 45.38535060,
                  "lng" : -75.69953670
               }
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "6a3f8ef9aae04c8a23c80ab814e8c75a8b685292",
         "name" : "Old Ottawa South",
         "reference" : "adsadada",
         "types" : [ "neighborhood", "political" ],
         "vicinity" : "Ottawa"
      },
   {
         "geometry" : {
            "location" : {
               "lat" : 45.394630,
               "lng" : -75.6837250
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/movies-71.png",
         "id" : "59519a28667351790456ab80aba982347546b2f6",
         "name" : "Mayfair Theatre",
         "rating" : 4.10,
         "reference" : "dfdsf",
         "types" : [ "movie_theater", "establishment" ],
         "vicinity" : "1074 Bank Street, Ottawa"
      }
  ]
}

我想获取结果部分(并且为了简单起见,我们说结果的第一项),我做的是以下内容:

JSONObject jso = new JSONObject(response);
String result = jso.getJSONArray("results").getJSONObject(0).toString();
JsonPlacesResult d = new Gson().fromJson(result, JsonPlacesResult.class);


where JsonPlacesResult is

class JsonPlacesResult{

    private JsonPlaces jsonPlaces;


    public JsonPlaces getJsonPlaces(){return jsonPlaces;}



}
class JsonHtml{
    private String html_attribution;

}
class JsonPlaces{
    private Geometry geo;
    private String icon;
    private String id;
    private String name;
    private String rating;
    private String reference;
    private String types;
    private String vicinity;
}
class Geometry{
    private JsonLocation loc;
}
class JsonLocation{
    private String lat;
    private String lng;
}

我在d ???中以null对象结束为什么是这样!我做错了什么 感谢

4 个答案:

答案 0 :(得分:2)

您可以从这些链接中学习。这些链接中显示的非常简单的示例。并发布您收到的JSON样本,以便人们获得更清晰的答案。感谢。

的http:// www.technotalkative.com/android-json-parsing/

的http:// www.androidcompetencycenter.com/2009/10/json-parsing-in-android/

答案 1 :(得分:0)

这是一个教程,向您展示如何使用GSON将JSON字符串解析为Java对象。

http://java.sg/parsing-a-json-string-into-an-object-with-gson-easily/

答案 2 :(得分:0)

3个错误: 1.“lat”和“lng”的类型应该是 float 而不是 String ; 2.“html_attributions”的类型应为 List(String),而不是 String ; 3.“类型”的类型应为列表(字符串),而不是字符串; 抱歉我的英语不好。

答案 3 :(得分:0)

现在有一个现成的python转换器,用于KML和其他格式: https://github.com/Scarygami/location-history-json-converter/blob/master/location_history_json_converter.py