Почему Kotlin с Spring MVC JSON возвращает пустой объект?

Я играл с серверной стороной 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) 

… при вызове с завитом

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

… результат {} когда я ожидал {"name":"Fred","age":50} . Что-то я сделал не так?

Гораздо проще, чем я думал. Узнав, что Джексон смог сериализовать объект просто отлично, я начал делать корректировки и нашел, что значение по умолчанию было лучше, чем настройка:

 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 (что необходимо во многих сценариях), я @JsonView той же проблемой пустого объекта, пока не добавил зависимость от jackson-module-kotlin к моему проекту.

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

См. Здесь: https://stackoverflow.com/a/48019143/5258628