【发布时间】:2019-11-21 12:09:22
【问题描述】:
您好,我在发布版本中遇到了库 Gson 的问题。
实际上,在我的应用程序的发布版本中,使用new Gson().toJson(obj) 方法会返回一个不正确的字符串。
返回的字符串缺少我的对象的某些字段。发布版本是否可能需要一些缺少的选项?
以下是一些有用的信息:
-
obj是ArrayList<MyClass>的一个实例 - 我正在使用
implementation 'com.google.code.gson:gson:2.8.5' - 我正在使用
Android Studio 3.5.1
MyClass 是这样构建的:
public class MyClass{
@SerializedName("a")
private String a;
@SerializedName("b")
private Integer b;
@SerializedName("c")
private String c;
@SerializedName("d")
private String d;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
...
}
示例:
MyClass example = new MyClass("a","b","c","d");
ArrayList<MyClass> listExample = new ArrayList<MyClass>();
listExample.add(example);
String strObj = new Gson().toJson(listExample);
当前输出:
[
{
"b":"b",
"c":"c",
"d":"d",
}
]
预期输出
[
{
"a":"a",
"b":"b",
"c":"c",
"d":"d",
}
]
要重现错误,只需关注 github: https://github.com/Ciardini/error02
【问题讨论】:
-
你能展示整个
MyClass的所有方法和构造函数吗? -
@MichałZiober 没什么,MyClass 有两个构造函数,一个为空,另一个包含所有字段。与示例一样,该类具有所有 get 和 set 方法,我更喜欢不共享该类,因为它有 50 多个字段。今天我将尝试重新创建一个有错误的小样本并将其发布到 github 上。
标签: java android json gson release