我一直在玩服务器端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}
。我做错了吗?
答案 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'