Gson - 条件JSON反序列化(完整性检查)

时间:2011-05-15 17:04:07

标签: java android json parsing gson

我的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和所有其他字段的字段。

1 个答案:

答案 0 :(得分:2)

您需要编写自己的反序列化程序,并在条件未满足时抛出异常。

http://sites.google.com/site/gson/gson-user-guide#TOC-Writing-a-Deserializer

我不知道你应该这样做,但这是可能的。