我想把一个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);
那么为什么杰克逊在写入文件时会以不同的方式转义,我如何在将其写入字符串时让它像那样进行转义?
toString()
方法输出格式进行的调整。当您在JSON字符串中看到它时,它看起来确实很奇怪。 - CorayThan