gpt4 book ai didi

xml - 如何强制 Jackson 关闭一个空的 XML 元素?

转载 作者:行者123 更新时间:2023-12-05 06:46:15 32 4
gpt4 key购买 nike

我正在尝试使用 Jackson 将简单对象序列化为 XML,但我无法关闭空的 XML 元素。我明白了

<SimplePojo name="simpleName">
</SimplePojo>

但是我想要这个

<SimplePojo name="simpleName"/>

如果有设置,我找不到。任何帮助将不胜感激。


public class SimplePojo
{
public SimplePojo(String name)
{
this.name = name;
}

@JacksonXmlProperty(isAttribute = true)
private String name;

public String getName()
{
return this.name;
}

public void setName(String name)
{
this.name = name;
}

@JsonInclude(Include.NON_EMPTY)
private String property;

public String getProperty()
{
return property;
}

public void setProperty(String property)
{
this.property = property;
}
}

我正在使用这样的类:

 JacksonXmlModule module = new JacksonXmlModule();
module.setDefaultUseWrapper(false);

XmlMapper xmlMapper = new XmlMapper(module);
xmlMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
SimplePojo simple = new SimplePojo("simpleName");
//simple.setProperty("something");

String res = xmlMapper.writeValueAsString(simple);

编辑:这是我正在使用的 jar 的列表

Jackson jars

最佳答案

我在使用 jackson-data-format-xml 的 2.3.1 和 2.2.3 版本时也遇到过这个问题。设法通过添加与您相同的 Woodstox jar 来解决它。所以很确定修复与缩进无关。

如果您不确定您是否正在使用 Woodstox,您可以显式创建一个 woodstox XMLFactory 并在您的 XMLMapper 中使用它

XmlFactory xmlFactory = new XmlFactory(new WstxInputFactory(), new WstxOutputFactory());
XmlMapper mapper = new XmlMapper (xmlFactory, module);

祝你好运!

关于xml - 如何强制 Jackson 关闭一个空的 XML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551518/

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