我正在使用JAXB / Jersey(1.3)在REST API中将java转换为json。我正在返回的java类是:
public class MyClass {
List<String> myTags;
public List<String> getMyTags() {
return myTags;
}
}
我的问题是,如果列表 myTags 中只有一个元素,那么数据将转换为json作为字符串对象,而不是字符串数组。也就是说,我得到了:
{
"myTags": "myString"
}
我想要的是:
{
"myTags": ["myString"]
}
任何人都知道什么?
答案 0 :(得分:7)
根据Luciano的评论,问题在于Jersey没有使用Jackson作为默认的JSON转换器。我试图将Jettison从pom依赖项中排除,但它仍然无法解决问题。我找到了一个明确告诉泽西岛在这里使用杰克逊的答案:
How can I customize serialization of a list of JAXB objects to JSON?
答案 1 :(得分:0)
我遇到了类似的问题并找到了简单的修复方法。标记@JsonSerialize而不是@XmlRootElement对我有用。
@JsonSerialize
public class MyClass {
List<String> myTags;
public List<String> getMyTags() {
return myTags;
}
}