gpt4 book ai didi

Quarkus REST Jackson 对象映射器配置似乎不起作用

转载 作者:行者123 更新时间:2023-12-04 00:02:27 24 4
gpt4 key购买 nike

我已将 jackson 扩展添加到我的 quarkus gradle 项目(0.23.2)中,但是在运行我的应用程序并调用我的 rest 端点时似乎没有应用此配置:

@ApplicationScoped
public class ObjectMapperConfiguration {

@Singleton
@Produces
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

return objectMapper;
}
}

序列化的 json 仍然包括空条目和空数组。这是遵循 quarkus 指南中的示例。

在启动时,我可以看到 jackson 扩展存在:
2019-10-08 07:04:00,613 INFO  [io.quarkus] (main) Installed features: [cdi, hibernate-validator, resteasy, resteasy-jackson, smallrye-openapi, swagger-ui]

我错过了什么吗?

从 curl http 请求返回的 jackson 序列化输出示例:
"code":"invalid.request", "message": null, "attributes": null, "errors": [{"code":"data", "message":"must not be blank","attributes":null,"errors":null}]}

如您所见,尽管配置为不输出,但仍在输出消息和属性。

谢谢你的帮助。

最佳答案

有一种简单的方法可以做到这一点,请查看 https://quarkus.io/guides/rest-json .

你的代码应该是这样的:

@Singleton
public class RegisterCustomModuleCustomizer implements ObjectMapperCustomizer {
@Override
public void customize(ObjectMapper objectMapper) {
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
}
}

关于Quarkus REST Jackson 对象映射器配置似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58281035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com