gpt4 book ai didi

java - 在 Jackson 和 @XmlValue 中序列化对象

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:21 29 4
gpt4 key购买 nike

bean :

@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 运行它或作为 Web 服务运行它时才出现,其中 Jackson 是 JSON 提供者。 IntegerWrapper 位于包含一些 JPA beans 的包中,但 persistence.xml 中未提及 IntegerWrapper。当我将其复制到另一个包时,fieldHandler 消失了。

最佳答案

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

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

关于java - 在 Jackson 和 @XmlValue 中序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889081/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com