我试图从JSON文件反序列化对象。
我有抽象类Car
,它由Minibus
和Minivan
类扩展。
我按maxPassengers
和trunkSize
字段的值确定了确切的类别。
当我根据JSON中的参数反序列化时,我需要创建一个MinibusCar
或MinivanCar
对象。最有效的方法是什么?请指教。
答案 0 :(得分:0)
这里没有足够的信息。你能告诉我们这个json文件的例子吗?
一般情况下,你可以使用杰克逊包:
// Serialize into JSONObject
JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt);
// Get your value from it, for example:
int maxPassengers = json.get("maxPassengers");
// Init your object mapper
ObjectMapper mapper = new ObjectMapper();
// Based on this value, create your object
Car car; // Using polymorphism (you can also read about Factory design pattern)
if (maxPassengers > 10){
car = mapper.readValue(jsonTxt, MinibusCar.class);
} else {
car = mapper.readValue(jsonTxt, MinivanCar.class);
}
但是这个解决方案并不完美,直到你向我们展示类(其中三个)和一些json示例文件。
祝你好运!