提问人:Jonik 提问时间:11/11/2010 更新时间:3/4/2022 访问量:49431
你能避免 Gson 将“<”和“>”转换为 unicode 转义序列吗?
Can you avoid Gson converting "<" and ">" into unicode escape sequences?
问:
我注意到 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 语言编写)。
答:
308赞
BalusC
11/11/2010
#1
您需要禁用 HTML 转义。
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
评论
0赞
Mr Code
4/4/2018
伙计们,这对我不起作用。我正在使用''com.squareup.retrofit2:retrofit:2.3.0''&'com.squareup.retrofit2:converter-gson:2.3.0''。请帮帮我。
2赞
ROOPA P D
3/4/2022
#2
Ampasand 符号被替换为 \u0026 ,通过使用它得到了解决。
评论
1赞
Lancer.Yan
3/4/2022
但有时,为了可读性和与外部输入数据的兼容性,例如对象的反序列化,此处的 [数据源] 控制可能是不可能的或成本太高;这一次,合理运用Gson自身的原理机制和配置可能是更好的选择。
评论