在Apache CXF中使用动态Jackson Mix-ins

时间:2013-01-31 17:48:15

标签: json rest cxf jackson jax-rs

我使用Jackson作为Apache CXF的JSON提供程序。我想使用Jackson mix-ins来塑造REST控制器返回的JSON结构。混合将应用于域对象(未注释)以在序列化期间忽略某些属性。

混合的所有示例都处理它们的编程应用程序,您可以在其中创建ObjectMapper对象并在运行时将混合应用于其中。在我的REST层中,我没有以编程方式使用Jackson。它被注册为CXF的JSON提供者(通过蓝图XML - 这是OSGI环境)。

我的问题是如何在不必显式创建ObjectMapper并在其上调用writeValue()的情况下将混合应用于Jackson。另外,如何动态应用混合以允许REST控制器根据请求参数返回同一域对象的不同表示?

谢谢,

迈克尔

1 个答案:

答案 0 :(得分:0)

检查JacksonJsonProvider上的Javadoc:

  

要使用的ObjectMapper可以通过多种方式配置:

     
      
  • 通过显式传递mapper以在构造函数中使用
  •   
  • 明确设置mapper使用setMapper(com.fasterxml.jackson.databind.ObjectMapper)
  •   
  • 通过定义返回ObjectMappers的JAX-RS Provider。
  •   
  • 通过不执行上述操作,在这种情况下构建默认映射器实例(并在调用配置方法时配置)
  •