Для генерации JSON вам просто нужно указать @Produces(MediaType.APPLICATION_JSON)
.Однако по умолчанию будет выбран маршрут JAXB.
С помощью Object -> JAXB -> JSON вам нужно будет пометить классы, которые вы хотите отобразить, с помощью @XmlRootElement
.Это будет работать нормально, но как только вы доберетесь до сериализации HashMap
, вы не получите в итоге очевидное {keyOne:"one",keyTwo:"two"}
, а скорее нечто странное, например {entry:[{key:"keyOne",value:"one"},{key:"keyTwo",value:"two"}]}
.
Итак, чтобы взять прямой объект -> JSONКстати, просто укажите в своем файле web.xml следующее:
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
С этим отображением JSON будет работать так, как вы ожидаете.Только не забудьте удалить аннотации @XmlRootElement
, они заставляют генерировать XML при включенном отображении POJO.
Также взгляните на мой вопрос относительно этого: Java.util.Map to JSONОбъект с Джерси / JAXB / Джексоном
Ссылка: http://jersey.java.net/nonav/documentation/latest/json.html#d4e894