Gson - условная десериализация JSON (Sanity Checks)

1

У меня есть код в моем проекте 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 имеет поля для имени, начала, конца и всех других полей.

Теги:
parsing
gson

1 ответ

2
Лучший ответ

Вам нужно будет написать собственный десериализатор и вызвать его исключение, когда ваше условие не будет выполнено.

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

Я не знаю, что вы должны это делать, но это возможно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню