javaのjavascriptファイルにjsonを入れようとしていますが、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"}, ]"
}
これを行うと、2番目の結果が得られます。
new ObjectMapper().writer().writeValueAsString(booksMessage);
しかし、jackson を使用してファイルに直接書き込むと、最初の良い結果が得られます。
new ObjectMapper().writer().writeValue(fileToWriteTo, booksMessage);
では、なぜ jackson はファイルに書き込むときに異なる方法でエスケープするのでしょうか? また、文字列に書き込むときにそのようにエスケープするにはどうすればよいでしょうか?