0

我正在使用 RESTEasy 编写 RESTful Web 服务并尝试编写包含 HashMap 的响应。Web 服务生成 JSON 或 XML。JSON 映射正确,但 XML 映射没有内容。RESTEasy @WrappedMap 注释应该将 Maps 编组为 XML。

@XmlRootElement(name="Response")
public class RootResponse {
  private HashMap<String, String> test;
  public RootResponse() {
    test = new HashMap<String, String>();
    test.put("Fred", "Wilma");
    test.put("Barney", "Betty");
  }
  @XmlElement
  @WrappedMap(map="test", key="name", entry="spouse")
  public HashMap<String, String> getTest() {
    return this.test;
  }
}

JSON输出:

{
  "test": {
    "Fred": "Wilma",
    "Barney": "Betty"
  }
}

XML 输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
  <test/>
</Response>

如果我省略 @WrappedMap 注释,我会得到相同的输出。

@WrappedMap 不适用于属性吗?

4

1 回答 1

0

我知道你发布这个问题已经有一段时间了,但我仍然想分享我最近学到的东西,以防其他人偶然发现这个问题。

@WrappedMap根据此文档仅有助于更改输出 XML 中元素的名称。至于为什么你不能让 JAXB 从 中输出 XML HashMap,我认为这个页面有解释。

希望这可以帮助。

于 2011-08-09T09:16:46.973 回答