为什么带有Spring MVC JSON的Kotlin会返回一个空对象?

时间:2017-06-26 03:20:05

标签: spring-mvc jackson kotlin

我一直在玩服务器端Kotlin,Spring MVC和Jackson。 我使用http://start.spring.io/构建了一个简单的应用程序,但我可能在JsonView注释中犯了一个错误。

此:

@RestController

class MyRestController {
    @RequestMapping("/user")
    @JsonView(User::class)
    fun getUser() : User = User("Fred",50)
}

data class User(val name: String, val age: Int)

...用curl调用时

ph@sleek ~ $ curl -X GET http://localhost:8080/user; echo
{}
ph@sleek ~ $ 

...当我预期{}时,结果为{"name":"Fred","age":50}。我做错了吗?

2 个答案:

答案 0 :(得分:1)

比我想象的简单得多。在发现Jackson能够将对象序列化后,我开始进行调整,发现默认值优于配置:

quick^2 fox

完美:

class MyRestController {
    @RequestMapping("/user")
    fun getUser() : User = User("Fred",50)
}

答案 1 :(得分:0)

如果您确实想使用@JsonView(这在许多情况下是必需的),我遇到了同样的空对象问题,直到我将jackson-module-kotlin依赖项添加到我的项目中。

compile 'com.fasterxml.jackson.module:jackson-module-kotlin'

见这里:https://stackoverflow.com/a/48019143/5258628