在tornadofx中使用localdatetime和rest springboot

时间:2018-01-31 16:54:23

标签: json spring-boot kotlin tornadofx

我使用springboot休息服务开发tornadofx应用程序作为后端
所有用kotlin语言

问题是tornadofx seNd LocalDateTime as Int 这会导致springboot服务器出现此错误

2018-01-31 18:33:31.296  WARN 11473 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected token (VALUE_NUMBER_INT), expected VALUE_STRING: Expected array or string.; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (VALUE_NUMBER_INT), expected VALUE_STRING: Expected array or string.
 at [Source: (PushbackInputStream); line: 1, column: 16] (through reference chain: andalous.torndadoserver.financial.dailymove.newDailyMove["date"])

我添加到springboot但无法解决

<dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>2.9.1</version>
    </dependency>

并在application.properties

中使用它
spring.jackson.serialization.write_dates_as_timestamps=false

2 个答案:

答案 0 :(得分:1)

您可以随意序列化json数据。您可以执行OS而不是json.add("key", someLocalDateTimeValue)。你甚至可以添加一个扩展功能,以便与它合作。

也就是说,如何在内置的JsonBuilder中存储LocalDateTime,应该很容易找到一个可配置的选项。公关将是最受欢迎的:)

答案 1 :(得分:1)

这与tornadofx完美配合

override fun toJSON(json: JsonBuilder) {
    with(json){
        add("date",date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
    }
}

override fun updateModel(json: JsonObject) {
    with(json){
        date= LocalDateTime.parse(string("date"),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
    }
}