让我们说我有一个班级" Car"
class Car{
@SerializedName("wheels")
private int wheels;
@SerializedName("motor")
private Motor motor;
// constructor
public Car{
motor = new Motor();
}
}
在这种情况下,通过创建new Car()
,它将创建Motor motor = new Motor()
的新实例,该实例在构造函数中定义。
现在我想加载我的"汽车"来自json
{
"wheels": 4,
"motor": {}
}
或只是
{
"wheels": 4,
}
然后:
Car car = gson.fromJson(josnString, Car.class);
使用这种方法不会产生" Motor"课堂上的对象。因为{} = null。我怎么能告诉Gson创造一个" Motor"对象呢?我应该编写自定义反序列化程序吗?
答案 0 :(得分:0)
其实这是我的错。我想通了: 如果使用
795717178255658627448611597034913344160729841275756347904742363029055\
1952200534008528895
对象电机是{
"wheels": 4,
}
如果使用
null
正常创建对象。如果您将其声明为{
"wheels": 4,
"motor": {}
}
,或仅Motor motor = null;