У меня есть код в моем проекте Android, который правильно десериализует json в POJO, используя gson. Я хочу добавить некоторые вступительные проверки (проверки здравомыслия) на входящий 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 имеет поля для имени, начала, конца и всех других полей.
Вам нужно будет написать собственный десериализатор и вызвать его исключение, когда ваше условие не будет выполнено.
http://sites.google.com/site/gson/gson-user-guide#TOC-Writing-a-Deserializer
Я не знаю, что вы должны это делать, но это возможно.