我的android项目中的代码使用gson正确地将json反序列化为POJO。我希望为传入的json添加一些条件接受检查(完整性检查)。例如,对于下面的数据结构,我希望gson解析器只添加开始日期<结束日期。我知道我可以在填充后删除无效项目后遍历列表,但我想知道是否有任何方法可以动态拒绝这些项目。任何帮助将不胜感激。
示例JSON
{
"Items" : [
{
"Name" : "Example Name",
"Start" : "2010-10-16 10:00:00",
"End" : "2011-03-20 17:00:00",
<other fields>
},
<several more items>
]
}
ItemList.java
public class ItemList {
private List<ItemHeader> Items;
public void setItemHeaders(List<ItemHeader> headers) {
Items = headers;
}
public List<ItemHeader> getItemHeaders() {
return Items;
}
}
ItemHeader.java 包含name,start,end和所有其他字段的字段。
答案 0 :(得分:2)
您需要编写自己的反序列化程序,并在条件未满足时抛出异常。
http://sites.google.com/site/gson/gson-user-guide#TOC-Writing-a-Deserializer
我不知道你应该这样做,但这是可能的。