Разбор дат с помощью json-lib - PullRequest
1 голос
/ 30 января 2012

У меня есть следующий объект JSON:

{"startDate": "30/01/2008", "startPeriod": "2008", "dboid": "5308204301485575800000", "action": "update "," grid ":" optionAssigGrid "," endDate ":" 30/01/2011 "," endPeriod ":" 2011 "," institute ":" 5301004301485575300000 "}

После применения JSONObject.toBeanДля начальной и конечной даты в полученном бине указывается текущая системная дата (вместо значений в строке json).Похоже, они инициализируются с новой датой ().

Есть ли способ указать формат даты?Я заглянул в класс JsonConfig без особого успеха.

Заранее спасибо!

1 Ответ

1 голос
/ 29 мая 2012

Зарегистрируйте свой собственный процессор ...

this.jsonConfigToJSON = new JsonConfig();
this.jsonConfigToJSON.registerJsonValueProcessor(java.util.Date.class, new JsonValueProcessor() {
    @Override
    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
        return process(value, jsonConfig);
    }

    @Override
    public Object processArrayValue(Object value, JsonConfig jsonConfig) {
        return process(value, jsonConfig);
    }

    private Object process(Object value, JsonConfig jsonConfig) {
        // For Unix Time
        return ((Date) value).getTime() / 1000L;
    }
});
...