首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Kotlin和Jackson的@JsonView注释的Micronaut不起作用

使用Kotlin和Jackson的@JsonView注释的Micronaut不起作用
EN

Stack Overflow用户
提问于 2019-12-08 22:27:43
回答 1查看 215关注 0票数 1

我正在用Micronaut和Kotlin做实验。

我有一个Hibernate JPA连接,它工作得很好,然而,在为它创建REST API时,我想从列表序列化中排除一些属性。

因此,下面是我所做的:

域类:

代码语言:javascript
复制
@Entity
@JsonView
class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @NotNull
    @JsonView(View1::class)
    var id : Long? = null

    @NotNull
    @Column(unique = true, length = 64)
    @JsonView(View1::class)
    lateinit var email : String

    @NotNull
    @Column(length = 16)
    @JsonView(View2::class)
    lateinit var firstName : String

    @NotNull
    @Column(length = 16)
    @JsonView(View2::class)
    lateinit var lastName : String

    @NotNull
    @JsonView(View2::class)
    lateinit var address : Address

}

@Embeddable
class Address {

    @Column(length = 64)
    lateinit var street : String

    @Column(length = 32)
    lateinit var city : String

    @Column(length = 16)
    lateinit var state : String
}

View1和View2并不有趣,因为根据文档,它们实际上是空类。

现在,在控制器中,我执行如下操作:

代码语言:javascript
复制
    @Get("/")
    @Produces("application/json")
    @JsonView(View1::class)
    fun list() : List<User> {
        return userRepository.findAll()
    }

然而,我希望得到一些合作,这是我得到的:

代码语言:javascript
复制
[
    {
        "id": 1,
        "email": "john@doe.com",
        "firstName": "John",
        "lastName": "Doe",
        "address": {
            "street": "23, Madison Street",
            "city": "Brooklyn",
            "state": "NY"
        }
    }
]

在application.yml中,应该正确设置json-view,如下所示:

代码语言:javascript
复制
jackson:
  json-view:
    enabled: true

有什么线索吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-09 17:57:14

在遇到同样的问题之后,我最终偶然发现了这个直接使用ObjectMapper的答案:Jackson's @JsonView annotation does not work

问题是jackson.mapper.default-view-inclusion属性的默认值为true。在application.yml中将其显式设置为false为我解决了这个问题。

代码语言:javascript
复制
jackson:
  serializationInclusion: ALWAYS
  json-view:
    enabled: true
  mapper:
    default-view-inclusion: false
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59236373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档