【发布时间】:2019-11-27 23:30:07
【问题描述】:
我有一个模型,包含在一个主要的 Manager 类中,它有一些变量,例如 name,但也有一个名为 data 的大对象。对于特殊情况,我想使用 Gson 从 json 传递到模型,但忽略 json 的 data 对象(对于正常情况,我将完全解码 json 的所有对象)。
我需要这样做没有注释和瞬态,只需添加一个反序列化规则以排除Data 类,以防我想这样做。
如何指定要忽略的类的广告解码时间?
我的模特:
public class Manager{
String name;
Data data;
}
public class Data{
String dummy;
String dummy2;
}
Json 示例:
{"manager":{"name":"testname","data":{"dummy":"testname", "dummy2":"testname2"}}}
全部解码的代码示例:
GsonBuilder gsonBuilder = new GsonBuilder();
new GraphAdapterBuilder()
.addType(Data.class)
.addType(Manager.class)
.registerOn(gsonBuilder);
Gson gson = gsonBuilder.create();
Manager manager = gson.fromJson(json, Manager.class);
【问题讨论】:
-
注册一个类型适配器,它(以某种方式)知道它是否是“特殊情况”,然后不对
data字段做任何事情? -
您在发布版本中需要这个?
-
什么是特例?它可以在程序运行期间改变吗?也许stackoverflow.com/questions/23920740/… 会帮助你(从空集合中清除了一个 JSON)。