@JsonSerialize не конвертирует мой формат даты из контроллера bootboot 2.2.4 - PullRequest
0 голосов
/ 30 апреля 2020

у меня есть модель (ModelX) с датой

@Entity
class ModelX
   ....
    @JsonSerialize(using = DateSerializer.class)
    private Long date;

Дата Сериализатор

public class JsonDateSerializer extends JsonSerializer<DateTime>
{

private static DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");

@Override
public void serialize(DateTime value, JsonGenerator gen, 
                      SerializerProvider arg2)
    throws IOException, JsonProcessingException {

    gen.writeString(formatter.print(value));
}
}

мой контроллер

@RestController
public class XC {

 @GetMapping(value = "/get/{main_key}"
 public get ModelX get(@PathVariable("main_key") String main_key) {
   return repository.get(main_key);
 }

}

fetch работает, но моя дата длинная, но я хочу дату "дд / мм / гггг"

1 Ответ

0 голосов
/ 01 мая 2020

Используя JSON пользовательский сериализатор, вы можете форматировать ДЛИТЕЛЬНУЮ дату

@Entity
class ModelX
   ....
    @JsonSerialize(using = JsonDateCustom.class)
    private Long date;

Пользовательский сериализатор

@Component
public class JsonDateCustom extends JsonSerializer<Long> {
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

    @Override
    public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        String formattedDate = dateFormat.format(value);
        gen.writeString(formattedDate);

    }
}
...