你能避免 Gson 将“<”和“>”转换为 unicode 转义序列吗?
Posted
技术标签:
【中文标题】你能避免 Gson 将“<”和“>”转换为 unicode 转义序列吗?【英文标题】:Can you avoid Gson converting "<" and ">" into unicode escape sequences? 【发布时间】: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”。 【参考方案1】:你需要disable HTML escaping。
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
【讨论】:
我想知道为什么它默认开启。 JSON 与 HTML 无关。 spec 仅声明"
和 `\` 需要转义。
伙计们,这对我不起作用。我正在使用 ''com.squareup.retrofit2:retrofit:2.3.0'' && ''com.squareup.retrofit2:converter-gson:2.3.0''。请帮帮我。以上是关于你能避免 Gson 将“<”和“>”转换为 unicode 转义序列吗?的主要内容,如果未能解决你的问题,请参考以下文章
Android ---------List 数组转成 json格式的字符串