我遇到了反序列化 json 的问题,其中有一个字段可以有多种类型,并且该类型由另一个字段确定。
为了清楚地说明这个问题,请看下面的 3 个示例,json 称为 Extra,它的字段 Unit 始终是一个字符串,它的字段 Value 可以是小数(示例 1)、对象(示例 2)或对象列表(示例 3)取决于字段 Unit 的值。
我对 GSON 相当陌生,不知道如何解决这个问题,从查看 API 看来我必须编写自定义反序列化器?如果一个字段的类型取决于另一个字段,我将如何为这个示例编写一个?
Example 1
Extra {
Unit:"Decimal"
Value:0.0
}
Example 2
Extra {
Unit:"Object"
Value:{object}
}
Example 3
Extra {
Unit:"List of objects"
Value:[{object}
{object},
{object},
]
}