web-dev-qa-db-ja.com

Gsonが「<」と「>」をUnicodeエスケープシーケンスに変換するのを回避できますか?

Gson は、JSON出力で文字列「<」をUnicodeエスケープシーケンスに変換することに気付きました。これをどうにかして回避できますか、または「<」や「>」などの文字を常にJSONでエスケープする必要がありますか?

{"s":"\u003c"};を出力するこの例を考えてみましょう。単純に{"s":"<"}が欲しいです。

public static void main(String[] args) {
    Gson gson = new GsonBuilder().create();
    System.out.println(gson.toJson(new Foo()));  
}

static class Foo {
    String s = "<";
}

コンテキスト:私が作成しているJSONの一部は、HTMLページやJavaScriptとも関係ありません。特定の構造化された情報を別のソフトウェア(Cで記述されたデバイスに埋め込まれた)に渡すために使用されます。

112
Jonik

HTMLエスケープを無効にする にする必要があります。

Gson gson = new GsonBuilder().disableHtmlEscaping().create();
225
BalusC