数组中的jaxb单个元素

时间:2011-04-12 20:45:25

标签: jaxb jersey

我正在使用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"]
}

任何人都知道什么?

2 个答案:

答案 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;
  }
}