RESTEasy @WrappedMap - PullRequest
       18

RESTEasy @WrappedMap

0 голосов
/ 09 декабря 2010

Я использую RESTEasy для написания веб-службы RESTful и пытаюсь написать ответ, содержащий HashMap.Веб-сервис производит либо JSON, либо XML.Карта JSON верна, но у карты XML нет содержимого.Предполагается, что аннотация RESTEasy @WrappedMap упорядочивает Карты в 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 для свойств?

1 Ответ

0 голосов
/ 09 августа 2011

Я знаю, что прошло много времени с тех пор, как вы опубликовали этот вопрос, но я все еще хочу поделиться тем, что недавно узнал, на случай, если кто-то еще может наткнуться на этот вопрос.

@WrappedMap в соответствии с этой документацией только помогает изменить имя элементов в выходном XML. Что касается того, почему вы не можете заставить JAXB выводить XML из HashMap, я думаю, эта страница имеет объяснение.

Надеюсь, это поможет.

...