Spring MVC - JSON - Настройка парсинга календаря в объект Java

1

Как вы настраиваете, как Джексон анализирует календарь? Есть ли способ установить формат?

я использую

@RequestMapping(value = "/assign", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public Form5398Obj arriveTrip(@PathVariable String siteId,
                @RequestBody ErrorMsg anError) throws Exception {

        System.out.println(anError.toString());

    }

Я заметил, что я получаю ERROR 400, потому что поле Calendar в ErrorMsg не преобразуется должным образом. Если я удалю его из POST, он будет работать правильно.

Я заметил из поиска, что есть некоторые стандартные формы, которые работали для меня "" yyyy-MM-dd'T'HH: mm: ss.SSSZ "," yyyy-MM-dd'T'HH: mm: ss.SSS 'Z' "," EEE, dd MMM yyyy HH: mm: ss zzz "," yyyy-MM-dd "

Есть ли все-таки, чтобы явным образом сказать, что он разбирается определенным образом?

  • 0
    ... даже после нескольких попыток я не понимаю, что вы пытались сказать. Ваши предложения не имеют большого смысла. Сожалею.
Теги:
spring
date
jackson

1 ответ

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

Посмотрите здесь, в разделе часто задаваемых вопросов о способах его использования для Jackson 2.0.

Пример из часто задаваемых вопросов для сериализации:

public class DateStuff {
  @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd,HH:00", timezone="CET")
  public Date creationTime;
}

Независимо от этого, существует возможность написать собственный класс Serializer и аннотировать свойство с помощью @JsonDeSerialize(using MyDeSerializer.class)

public class MyJsonDateDeserializer extends JsonDeserializer<Date>
{
    @Override
    public Date deserialize(JsonParser jsonparser,
            DeserializationContext deserializationcontext) throws IOException, JsonProcessingException {

        SimpleDateFormat f = new SimpleDateFormat("dd.MM.yyyy"); // german date
        String d = jsonparser.getText();
        try {
            return f.parse(d);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }

    }

}
  • 0
    использование @JsonFormat сработало для меня. Спасибо! Я думал, что аннотация была только при сериализации в JSON.

Ещё вопросы

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