Json使用gson解析获取位置

时间:2014-07-22 06:36:16

标签: android json gson

请帮我写一下这个Json结果的POJO类。我尝试了很多,但它对我不起作用。这是结果返回表格google maps api

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Salem - Kochi - Kanyakumari Highway",
               "short_name" : "National Highway 47",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Thampanoor",
               "short_name" : "Thampanoor",
               "types" : [ "sublocality_level_1", "sublocality", "political" ]
            },
            {
               "long_name" : "Thiruvananthapuram",
               "short_name" : "TVM",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Thiruvananthapuram",
               "short_name" : "TVM",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Kerala",
               "short_name" : "KL",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "India",
               "short_name" : "IN",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "695014",
               "short_name" : "695014",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Salem - Kochi - Kanyakumari Highway, Thampanoor, Thiruvananthapuram, Kerala 695014, India",

提前致谢

3 个答案:

答案 0 :(得分:2)

您可以使用某些工具/网站从JSON生成POJO,其中一个网站是:http://www.jsonschema2pojo.org/。在这个网站上,您只需要粘贴您的JSON响应,它将生成所需的POJO类。它还支持GSON和Jackson等注释样式。

是一个懒惰而又富有成效的开发人员!

答案 1 :(得分:1)

如果对如何使用JSON创建POJO存在疑问,我建议您尝试使用此网站:http://www.jsonschema2pojo.org/

它输出一个适用于给定json类型的完整java类;

对于大多数情况,我建议您使用此配置(来自上面的网站):源类型:Json注释样式:无并且仅检查是否使用原语。

希望它有所帮助!

答案 2 :(得分:1)

我会这样做:

public class Poi {

    @SerializedName("long_name")
    private String longName;

    @SerializedName("short_name")
    private String shortName;

    @SerializedName("types")
    private String[] types;
}

然后就这样做

Gson gson = new Gson();
List<Poi> pois = new ArrayList<Poi>();

JSONObject result = new JSONObject(response);
JSONArray array = result.getJSONArray("results");

for(int i = 0; i < array.length(); i ++) {
    pois.add(gson.fromJson(array.get(i).toString(), Poi.class);
}