Мне нужно сериализовать 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();
Что возвращает element.getValue()?