gpt4 book ai didi

java - jackson 没有转义 JSON 中的引号

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:49 27 4
gpt4 key购买 nike

我试图将 json 放入 java 的 javascript 文件中,但是当我将 json 写入字符串时,该字符串似乎不是 javascript 的有效 json;它缺少一些逃生。 (这发生在我格式化为人造 json 的 json 字符串中。)

例如,这将是我的 javascript 文件中的有效 json:

{
"message":
"the following books failed: [{\"book\": \"The Horse and his Boy\",\"author\": \"C.S. Lewis\"}, {\"book\": \"The Left Hand of Darkness\",\"author\": \"Ursula K. le Guin\"}, ]"
}

不过,这是我得到的,其中双引号没有被转义:

{
"message":
"The following books failed: [{"book": "The Horse and his Boy","author": "C.S. Lewis"}, {"book": "The Left Hand of Darkness","author": "Ursula K. le Guin"}, ]"
}

当我这样做时我得到了第二个结果:

new ObjectMapper().writer().writeValueAsString(booksMessage);

但是当我用 jackson 将它直接写入文件时,我得到了第一个很好的结果:

new ObjectMapper().writer().writeValue(fileToWriteTo, booksMessage);

那么为什么 jackson 在写入文件时会以不同的方式转义,而在写入字符串时如何让它像我那样转义呢?

最佳答案

ObjectWriter 类的 writeValue() 方法对输入文本进行编码。

您不需要写入文件。获取相同字符串的另一种方法可能是:

StringWriter sw = new StringWriter();
new ObjectMapper().writer().writeValue(sw, booksMessage);
String result = sw.toString();

关于java - jackson 没有转义 JSON 中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19870885/

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