我从包含密钥' id'的服务器(不是我的服务器)获取json。 我想将它反序列化为一个名为' jsonId'的变量。在我的对象里面。 我使用@SerializedName(" id")来做,但问题是我的对象也有变量id,因为我得到重复错误。
我如何映射' id'变量' jsonId',同时输入' id'变量?
感谢。
答案 0 :(得分:2)
我可以想到两个选择。
一种选择是将名为id
的字段标记为transient
。 Gson ignores any field modified with transient
.
如果某个字段标记为瞬态,(默认情况下)它将被忽略,并且不会包含在JSON序列化或反序列化中。
另一个选项是使用jsonId
注释@Expose
字段(以及所有其他相关字段)并构建您的Gson
实例以排除没有注释的字段。例如,
Gson mapper = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
Gson现在只会对那些使用@Expose
注释的字段进行反序列化。它不会考虑任何其他人。