将json变量映射到关键字

时间:2014-06-20 16:47:13

标签: android gson retrofit

所以我正在使用一个名为“public”的变量的API进行改造。我将如何让它像所有其他变量一样自动映射。

示例:

@GET("/?filter=my_images")
void getMyImages(
        @Query("client_id") String id,
        @Query("api_key") String key,
        Callback<ImageList> callback
);
public static class Image{
    int id;
    String name;
    String distribution;
    String slug;
    // Can't do this:
    boolean public;
}

public static class ImageList{
    String status;
    List<Image> images;
}

示例API结果(json):

{
  "status": "OK",
  "images": [
    {
      "id": 1,
      "name": "My first snapshot",
      "distribution": "Ubuntu",
      "slug": "ubuntu-12.10-x32",
      "public": true
    },
    {
      "id": 2,
      "name": "Automated Backup",
      "distribution": "Ubuntu"
    }
  ]
}

2 个答案:

答案 0 :(得分:40)

Retrofit使用Gson与JSON进行序列化。

Gson提供@SerializedName注释,以便更改字段或方法映射到的键。您可以使用它来处理您的保留字:

@SerializedName("public")
public String isPublic;

答案 1 :(得分:0)

请查看此link,如果每个密钥中都有下划线,这是一个更简洁的解决方案。