可以避免 Gson 将“ <”和“ >”转换为 unicode 转义序列吗?

我注意到,葛森在 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 编写)。

46762 次浏览

你需要 禁用 HTML 转义

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

用 u0026代替了安帕桑的符号,用这个解决了问题。