为什么Spring MVC JSON的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}时,结果是{} {"name":"Fred","age":50} 。 有什么我做错了吗?

比我想象的要简单得多。 在发现jackson能够连续化对象之后,我开始进行调整,发现默认值比配置更好:

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

完善:

 ph@sleek ~ $ curl -X GET http://localhost:8080/user; echo {"name":"Fred","age":50} 

如果你想使用@JsonView (这在许多情况下是必须的),我运行到相同的空对象问题,直到我添加jackson-module-kotlin依赖项目我的项目。

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

看到这里: https : //stackoverflow.com/a/48019143/5258628