我们正在使用 CXF 构建一个 REST 服务,在该服务中我们以 JSON 和 XML 格式发送和接收数据
在 JSON 版本中,我们不想打扰我们的客户使用属性的“@”表示法并使用 JsonProvider (org.apache.cxf.jaxrs.provider.json.JSONProvider) 上的“attributesToElements”参数确保我们不发送这些以这种方式赋予客户的属性。
但是,当接收回数据(相同格式)时,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 是否可以将元素转换回属性?如果是这样怎么办?