豆:
@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就会消失。
答案 0 :(得分:1)
我搜索了fieldHandler,它看起来与hibernate有关,我怀疑你的对象是由hibernate管理的。
我快速查看了一下,我发现jackson-datatype-hibernate也许这可以用来注册一个jackson模块来获得你想要的结果。