Gson解析toJson特殊字符被转义的问题(如= & ‘’ 等)

Map<String, Object> map = new HashMap<>();
map.put("page_path", "page_path");
String pageparam = Uri.encode("item_id=415&user_id=105", "-_.!~*'()=&");
map.put("page_param", pageparam);
Gson gson = new Gson();
Logger.e("---onCreate--- " + gson.toJson(map));

如上面gson转String,打印出来结果为 {"page_param":"item_id\u003d415\u0026user_id\u003d105","page_path":"page_path"}

把=和&负号替换成\u003d和\u0026,与预期结果不符,刚开始以为是Uri.encode 问题,打印 encode没有问题,再分析发现可能gson.tojson可能存在问题。解决办法,通过 GsonBuilder创建

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

效果如下图

如果想要json不是一整行显示,而是根据json 属性自动换行,在 GsonBuilder 创建是可以添加setPrettyPrinting方法

Gson gs = new GsonBuilder().setPrettyPrinting()disableHtmlEscaping().create();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值