强制gson创建新对象

时间:2015-11-05 21:33:19

标签: java gson

让我们说我有一个班级" 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"对象呢?我应该编写自定义反序列化程序吗?

1 个答案:

答案 0 :(得分:0)

其实这是我的错。我想通了: 如果使用

795717178255658627448611597034913344160729841275756347904742363029055\
1952200534008528895

对象电机是{ "wheels": 4, }

如果使用

null

正常创建对象。如果您将其声明为{ "wheels": 4, "motor": {} } ,或仅Motor motor = null;

,则不会满足