JSONProvider将元素转换为属性(cxf)

时间:2013-05-17 09:34:27

标签: json cxf jax-rs

我们正在使用CXF构建REST服务,我们以JSON和XML

发送和接收数据

在JSON版本中,我们不想打扰我们的客户使用'@'表示属性,并使用JsonProvider上的“attributesToElements”参数(org.apache.cxf.jaxrs.provider.json.JSONProvider)确保我们不要以这种方式将这些属性发送给客户端。

然而,当接收数据(相同格式)时,JsonProvider无法正确地解析接收到的数据,因为它没有意识到属性值是属性(而是将它们视为元素)。

在cxf错误跟踪器的issue 3475中,此问题已得到确认并已标记为已解决,因为它在接收端需要处理。有人提到使用Jsonprovider的转换功能,但我似乎无法让它工作。

我尝试在beans.xml中配置转换,其中包含以下几种变体:

<property name="inTransformElements">
   <map>
      <entry key="fieldname" value="@fieldname"/>
      <entry key="fieldname" value="{@}fieldname"/> 
   </map>
</property>

但没有成功。

是否可以使用cxf JsonProvider将元素转换回属性? 如果是这样的话?

1 个答案:

答案 0 :(得分:0)

了解问题,

上面显示的XML是输出

<property name="inTransformElements">
   <map>
      <entry key="fieldname" value="@fieldname"/>
      <entry key="fieldname" value="{@}fieldname"/> 
   </map>
</property>

您是否尝试使用最新版本的CXF?