146

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

4

2 回答 2

289

您需要禁用 HTML 转义

Gson gson = new GsonBuilder().disableHtmlEscaping().create();
于 2010-11-10T17:32:15.090 回答
0

Ampasand 符号被替换为 \u0026 ,通过使用它得到了解决。

于 2022-03-04T07:51:26.417 回答