我想從我的模型創建以下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在這種情況下,正確的方法?