我使用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
答案 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"))
}
}