Приложение Spring с graphql - проблема сериализации - PullRequest
0 голосов
/ 07 августа 2020

У меня проблемы с сериализацией LocalDateTime с помощью приложения Spring, реализующего Graphql. Вскоре в приложении Output, если дата имеет 0 секунд и миллисекунд, она отображается в формате «yyyy-MM-dd'T'HH: mm», и я знаю по документации, что это функция LocalDateTime. Я хочу всегда показывать формат «yyyy-MM-dd'T'HH: mm: ss», поэтому я попытался реализовать и зарегистрировать пользовательский сериализатор, но я видел, что он не используется для сериализации, и на самом деле не было никаких изменить вывод.

Вот код сериализатора:

public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {

static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider provider)
        throws IOException {
    
    try {
    
        String s = value.format(DATE_FORMATTER);
        gen.writeString(s);
    
    } catch (DateTimeParseException e) {
    
        System.err.println(e);
        gen.writeString("");
    
    }
    
}}

Это то, что у меня в основном:

@Bean
public ObjectMapper objectMapper() {
    ObjectMapper mapper = new ObjectMapper();

    SimpleModule localDateModule = new SimpleModule();
    localDateModule.addDeserializer(LocalDateTime.class,
            new LocalDateTimeDeserializer());
    localDateModule.addSerializer(LocalDateTime.class,
            new LocalDateTimeSerializer());
    mapper.registerModule(localDateModule);
    return mapper;
}

Я даже пробовал использовать интерфейс ObjectMapperConfigurer безуспешно.

Не хватает какой-то конфигурации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...