我需要序列化一个XML,我想要的输入是这样的:
<item id="123">description</item>
我有一个具有以下代码的序列化器:
toXmlGenerator.writeFieldName("item");
toXmlGenerator.writeStartObject();
toXmlGenerator.setNextIsAttribute(true);
toXmlGenerator.writeFieldName("id");
toXmlGenerator.writeString(element.getId());
toXmlGenerator.setNextIsAttribute(false);
toXmlGenerator.writeStringField("",element.getValue());
toXmlGenerator.writeEndObject();
通过以上我得到:
<item id="123">
<>description</>
</item>
我尝试了不同的选项 toXmlGenerator.writeStringField("",element.getValue());
但是没有任何作用,我尝试了
toXmlGenerator.writeString(element.getValue());
但我收到以下错误:
com.fasterxml.jackson.databind.JsonMappingException: Can not write String value, expecting field name
有办法做到这一点吗?
setNextIsUnwrapped(boolean)
方法可以实现不带节点名称的值输出。
toXmlGenerator.setNextIsUnwrapped(true);
应该放在
writeStringField()
之前:
toXmlGenerator.setNextIsAttribute(false);
toXmlGenerator.setNextIsUnwrapped(true);
toXmlGenerator.writeStringField("", element.getValue());
toXmlGenerator.writeEndObject();