在Jackson和@XmlValue中序列化对象

时间:2014-07-22 13:43:05

标签: java json jackson

豆:

@XmlRootElement(name = "integer")
@XmlAccessorType(XmlAccessType.FIELD)
public class IntegerWrapper implements Serializable {

  private static final long serialVersionUID = -455136597629446657L;

  @XmlValue
  private Integer value;

   // getters/setter (no annotations)
  }

代码:

ObjectMapper mapper = new ObjectMapper();

IntegerWrapper iw = new IntegerWrapper();
iw.setValue(new Integer(11));
System.out.println("IntegerWrapper\n" + mapper.writeValueAsString(iw));

结果:

{"value":11,"fieldHandler":null}

为什么" fieldHandler"在结果对象中,我该如何摆脱它?

更新:

仅当我通过maven或作为JSON提供者的Jackson服务的网络服务运行时才会出现。 IntegerWrapper在包中,其中有一些JPA bean,但persistence.xml中没有提到IntegerWrapper。当我将它复制到另一个包时,fieldHandler就会消失。

1 个答案:

答案 0 :(得分:1)

我搜索了fieldHandler,它看起来与hibernate有关,我怀疑你的对象是由hibernate管理的。

我快速查看了一下,我发现jackson-datatype-hibernate也许这可以用来注册一个jackson模块来获得你想要的结果。