我遇到了一个反序列化json的问题,其中有一个字段可以有多个类型,并且该类型由另一个字段决定。
为了解决这个问题,请将json下面的3个示例称为Extra,它的字段Unit总是一个字符串,它的字段值可以是十进制(例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},
]
}
答案 0 :(得分:0)
尝试以下内容: 拿一个bean例如:ExampleBean 在ExampleBean中,获取另一个值列表的例子:例如:列表值;
然后尝试将GSON转换为List,如下所示
public static List getListFromGsonString(String jsonString){ Gson gson = new Gson(); Type listType = new TypeToken() {}.getType(); List list = (List)gson.fromJson(jsonString, listType); return list; }
这是我们在项目中所做的。如果不适用则忽略。