JsonGenerator: запись результата в несколько строк, перенос для XML String - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь сериализовать объект, который содержит строку XML в качестве параметра.Я хотел бы напечатать свой XML в разных строках, чтобы сделать его читабельным.

У меня есть что-то вроде этого, которое содержит всю информацию, но не отформатировано:

lwtrade: "<?xml version=\"1.0\" encoding=\"UTF-8\<n k=\"Country\" t=\"/LW_Country\">Finland</n>\r\n      <n k=\"Currency\"\
  \ t=\"/LW_Currency\">EUR</n>\r\n      <n k=\"Quantity\" t=\"d\">45445.0</n>\r\n      </n>\r\n"

, и я пытаюсьчтобы получить что-то вроде этого:

lwtrade: "<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
    <n k=\"Country\" t=\"/LW_Country\">Finland</n>
    <n k=\"Currency\"\\ t=\"/LW_Currency\">EUR</n>
    <n k=\"Quantity\" t=\"d\">45445.0</n>
</n>"

Я пытался использовать PrettyPrinter для замены \ r \ n эффективной кареткой, но я не уверен, как это работает.Я видел несколько примеров для Array, но ничего для String или формата XML.

Вот мой класс сериализации, расширенный от JsonSerializer:

public void serialize(LWTrade value, JsonGenerator gen, SerializerProvider serializers) throws IOException {

    Writer stringWriter = new StringWriter();
    XMLSerialiser xmlSerialiser = new XMLSerialiser();

    try {
        xmlSerialiser.serialise(value, stringWriter);
    } catch (Exception e) {
        logger.error("Exception caught", e);
    }

    gen.writeObject(stringWriter.toString());
}
...