我想从我的模型创建以下JSONGSON属性允许原始或复合映射
要么我有
{"name" : "Arsénio", "value" : 12}
或
{"name" : "Arsénio", "value" : {"min" : 12, "max" : 100, "value" : 200}}
我已经定义了以下POJO的
class Data {
String name;
Value value;
}
abstract class Value {}
class IntegerValue : Value {
int value;
}
class RangeValue : Value {
int max, min, value;
}
显然,这不会输出我对于第一种情况需要JSON使用IntegerValue的时候,因为它会输出
Gson gson = new Gson();
Data data = new Data();
data.name = "Arsénio";
data.value = new IntegerValue();
data.value.value = 12;
String result = gson.toJson(data, Data.class);
System.out.println(result);
输出:
{"name": "Arsénio", "value" : {"value" : 12}}
请告诉我型号你POJO在这种情况下,正确的方法?