You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Gson库转换Java对象为JSON时特殊字符转义问题咨询

解决Gson转JSON时特殊字符被Unicode转义的问题

这问题我之前也碰到过!Gson默认会对HTML相关的特殊字符做Unicode转义,所以你的URL里的=被转成\u003d、&里的&被转成\u0026了,其实只要调整Gson的配置就能轻松解决。

核心解决方案:禁用HTML转义

Gson提供了专门的配置项来关闭这种HTML转义行为,你只需要用GsonBuilder创建Gson实例时调用disableHtmlEscaping()方法即可:

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

这个方法会告诉Gson不要转义HTML相关的特殊字符(包括&、=、<、>等),让你的URL字符串保持原样输出。

修改后的完整代码示例

public static void main(String[] args) { 
    MyObj myObj = new MyObj(); 
    myObj.setUrl("www.koko.com?k=1&amp;v=2"); 
    // 使用GsonBuilder禁用HTML转义
    Gson g = new GsonBuilder().disableHtmlEscaping().create(); 
    System.out.println(g.toJson(myObj)); 
} 

public static class MyObj{ 
    private String url; 
    public String getUrl() { return url; } 
    public void setUrl(String url) { this.url = url; } 
}

运行这段代码后,输出的JSON会是:

{"url":"www.koko.com?k=1&v=2"}

完全保留了你原本的URL字符串,不会出现Unicode转义序列。

补充说明

Gson默认开启HTML转义是为了避免JSON中的特殊字符被当作HTML解析时出现安全问题或格式错误,但对于URL这类场景,我们不需要这种防护,所以禁用HTML转义是完全安全的。

内容的提问来源于stack exchange,提问作者Ehud Lev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:33:34