Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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
Java 安卓改型&x2B;GSON-API调用的枚举序列化-添加了恼人的额外引号_Java_Android_Gson_Retrofit_Okhttp - Fatal编程技术网

Java 安卓改型&x2B;GSON-API调用的枚举序列化-添加了恼人的额外引号

Java 安卓改型&x2B;GSON-API调用的枚举序列化-添加了恼人的额外引号,java,android,gson,retrofit,okhttp,Java,Android,Gson,Retrofit,Okhttp,这个问题(这可能是出于设计,谁知道呢——无论如何,要找到一个明确的答案并不容易)发生在Android改型1.9和2.0以及最新的GSON库中 我有这样一个枚举类: public enum SomethingType { @SerializedName("first") First, @SerializedName("second") Second } 使用改进(2.0,但与1.9相同的问题)和GSON,我尝试输出enum实例,如下所示: @Multipart @

这个问题(这可能是出于设计,谁知道呢——无论如何,要找到一个明确的答案并不容易)发生在Android改型1.9和2.0以及最新的GSON库中

我有这样一个枚举类:

public enum SomethingType
{
    @SerializedName("first")
    First,
    @SerializedName("second")
    Second
}
使用改进(2.0,但与1.9相同的问题)和GSON,我尝试输出enum实例,如下所示:

@Multipart
@POST("things")
Call<ThingResponse> createThing(
        @Part("image") RequestBody image,
        @Part("lat") double lat,
        @Part("lng") double lng,
        @Part("type") SomethingType type);
jsonRepresentation
类似于
“first”
(里面有额外的引号)。当然,我可以在这里脱掉它们。但Gson不了解序列化名称的哪一部分(

编辑2:

看起来,改型2.0后的
@Multipart
现在有一个更普遍的问题:所有字符串参数都添加了额外的引号

在过去24小时内,又出现了另一个这样的问题:


检查@keno-你指的不是很明显。这里有一个关于为什么在Gson序列化过程中
@SerializedName
包含额外引号的具体解释吗?具体是代码。@keno还注意到这是关于序列化的;我实际上从服务器反序列化没有问题。通过我的意思是像API中的
{“type”:“first”}
这样的东西实际上工作得很好,并且被反序列化为
SomethingType.first
Gson gson = new Gson();
String jsonRepresentation = gson.toJson(src);
return new JsonPrimitive(jsonRepresentation);