【问题标题】:RestEasy Jettison Single Element Array bugRestEasy Jettison 单元素数组错误
【发布时间】:2011-12-05 17:04:51
【问题描述】:

问题详情:RestEasy + Jettison

当数组有两个元素时,格式为:

{"MyArray" : {"Array" : [{"a" : 1, "b" : 2}, {"a" : 3, "b" : 4}]}}

但是当数组只有一个元素时,格式是:

{"MyArray" : {"Array" : {"a" : 1, "b" : 2}}} ***Missing the []

RestEasy 默认使用 Jettison Mapped 格式,它有一个已知的限制,即单个元素的列表不作为数组返回。根据这个讨论,建议的解决方案是使用 Jackson,但如果这不是一个选项,有没有办法使用 RestEasy + Jettison 来解决单元素数组问题?

Jersey 有一个使用 JSONJAXBContext 的解决方案,但我如何在 RestEasy 中解决这个问题?

【问题讨论】:

  • 嗨,我也有同样的问题。你得到答案了吗?
  • 我最终搬到了杰克逊。找不到与 Jettison 合作的方法。

标签: json jackson resteasy jettison


【解决方案1】:

你可以试试 StAXON 而不是 Jettiison - http://beckchr.github.com/staxon/

使用 StAXON,您可以提供数组元素的路径。 wiki 有一个例子:https://github.com/beckchr/staxon/wiki/Using-JAX-RS

【讨论】:

  • 感谢您的回复...但如果我可以离开 Jettison,这将是一个简单的解决方案。不幸的是,我们被 Jettison 困住了,而是想解决这个错误。有什么想法吗?
  • 你为什么坚持使用 Jettison?您所要做的就是向您的模型类(或资源方法)添加一个 @JsonXML 注释,其中将“/Array”列为区域路径。
猜你喜欢
  • 1970-01-01
  • 2013-01-14
  • 2013-10-29
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 2011-12-19
  • 1970-01-01
  • 2018-03-26
相关资源
最近更新 更多