【发布时间】:2011-05-08 00:22:49
【问题描述】:
我注意到Gson 将字符串“”这样的字符总是必须在 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 编写)。
【问题讨论】:
-
GSON 是否默认这样做?哇。这是一个相当奇怪的默认设置,尽管从 JSON 规范的角度来看这是完全合法的事情。
-
是的,我也很惊讶。幸运的是,remedy 很容易,一旦你知道去哪里找。 :) 否则,经过一天的体验,我发现 Gson 是一个非常干净、漂亮的库,还有一个很棒的 user guide!
-
这也发生在“=”字符上,变成了“\u003d”。