json - 如何从 JAX-RS 客户端提取 ObjectMapper?

标签 json jersey jackson jax-rs jersey-client

我正在使用 Jersey JAX-RS 客户端(2.0 版)。我知道它使用 Jackson ObjectMapper 来生成和解析 JSON。我想使用相同的对象为某些 Java 类生成 JSON,以便我可以将它们写入日志。

我知道我可以创建一个 ObjectMapper 的新实例,但我更喜欢请求 Jersey Client 给我一个它正在使用的实例的引用。我该怎么做? Jersey 2.0 知道 Jackson,因为它首先包含一个用于配置 Jackson 功能的 JacksonFeature 类。

最佳答案

我通过添加以下静态成员解决了这个问题:

private static JacksonJsonProvider jackson_json_provider = new JacksonJaxbJsonProvider()
      .configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false)
      .configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);

private static ObjectMapper object_mapper = jackson_json_provider.locateMapper(
      Object.class, MediaType.APPLICATION_JSON_TYPE);

private static Client client = ClientBuilder.newClient().register(jackson_json_provider);

请注意,第二个声明不需要仅用于配置 FAIL_ON_UNKNOWN_PROPERTIESFAIL_ON_EMPTY_BEANS ;我用 object_mapper出于其他一些原因。

关于json - 如何从 JAX-RS 客户端提取 ObjectMapper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380065/

相关文章:

javascript - 未从 JSON 加载网格数据

java - 如何将 Jersey beans 注入(inject) Weld 中的 Quartz 作业中?

java - 忽略 "Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token"错误

arrays - 在基本的 Node/Express 中,有没有办法将 JSON 文件视为 RESTful 资源?

android - 我无法在我的 Android 应用程序中从 mysql 检索数据

tomcat - Jersey、Tomcat 和安全注解

spring-boot - Spring 数据休息 : @Autowire in Custom JsonDeserializer

java - 从 JAR 运行应用程序时 URI 不是分层异常

javascript - 以更好的方式重新配置我的脚本

java - 无法在 Jersey/java 中调用 webservice 方法