【发布时间】:2013-11-21 03:52:01
【问题描述】:
我正在尝试将 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);
那么为什么杰克逊在写入文件时会以不同的方式转义,以及在写入字符串时如何让它像我一样转义?
【问题讨论】:
-
您的“有效 json”是一种奇怪的格式。为什么在
"The following books failed:...相同的字符串中嵌入了一个看起来像数组的东西? -
这就是我为该对象的 List 格式化
toString()方法的输出的方式。当你在 JSON 中的 String 中看到它时,它看起来确实很奇怪。
标签: java javascript json jackson