Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将json变量映射为关键字_Android_Gson_Retrofit - Fatal编程技术网

Android 将json变量映射为关键字

Android 将json变量映射为关键字,android,gson,retrofit,Android,Gson,Retrofit,因此,我正在使用一个API进行改造,该API有一个名为“public”的变量。我如何让它像所有其他变量一样自动映射呢 例如: @GET("/?filter=my_images") void getMyImages( @Query("client_id") String id, @Query("api_key") String key, Callback<ImageList> callback ); public static class

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

例如:

@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;
}

改型使用Gson进行JSON之间的序列化

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

@SerializedName("public")
public String isPublic;

请看这个,如果每个键中都有下划线,这是一个更整洁的解决方案。

效果很好。我不熟悉处理注释,所以我忘了检查类似的东西。这也将有助于去除那些带有下划线的丑陋的非标准变量。@JaySee在创建
GsonConverter
时,您还可以查看
setFieldNamingPolicy
/
setFieldNamingStrategy
选项-这些选项可用于自动将带下划线的JSON映射到驼峰大小写的属性名称(反之亦然)嗨,杰克,能不能请广场的人就这个问题给点提示:?
@SerializedName("public")
public String isPublic;