使用GSON不解析字段,只保留json原始字符串

Ken*_*ele 4 java android json gson jsonreader

在Java中使用GSON是否有任何注释,我可以指示一个字段,即使它是一个对象,它应该将它保持为原始字符串.?

或者最简单的方法是什么?

//This is the original
    @SerializedName("perro")
    public Perro perro

//This is what I want to achieve 
    @SerializedName("perro")
    public String perro

So the result should be 
perro = "{"Users":[{"Name":"firulais","Raza":"beagle"},{"Name":"Spike","Value":"Terrier"}]}"
Run Code Online (Sandbox Code Playgroud)

Ken*_*ele 11

我发现这个工作的唯一方法是使用

public JsonElement perro;
Run Code Online (Sandbox Code Playgroud)


tmm*_*mm1 6

根据 @mrsegev 的回答,这里有一个更简单的版本(在 Kotlin 中),可以处理任意对象:

class RawJsonAdapter: TypeAdapter<String>() {
    override fun write(out: JsonWriter?, value: String?) {
        out?.jsonValue(value)
    }
    override fun read(reader: JsonReader?): String {
        return JsonParser().parse(reader).toString()
    }
}
Run Code Online (Sandbox Code Playgroud)

这利用了https://github.com/google/gson/pull/667JsonWriter#jsonValue()中添加的内容

用法:

@JsonAdapter(RawJsonAdapter::class)
val fieldName: String? = null
Run Code Online (Sandbox Code Playgroud)