JsonGenerator:在多行上写入结果,以XML字符串形式

时间:2019-04-09 10:11:44

标签: java json xml jackson pretty-print

我尝试序列化包含XML String作为参数的对象。我想用不同的行打印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());
}

0 个答案:

没有答案