我们正在使用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将元素转换回属性? 如果是这样的话?
答案 0 :(得分:0)
了解问题,
上面显示的XML是输出
<property name="inTransformElements">
<map>
<entry key="fieldname" value="@fieldname"/>
<entry key="fieldname" value="{@}fieldname"/>
</map>
</property>
您是否尝试使用最新版本的CXF?