Golang Json Marshal引起的转义问题
Json.Marshal对特殊字符转义
背景: 使用golang做网关进行转发请求时候,发现转发的java响应中的json中的url参数&被进行转义
- 转发前原始数据:
{"url":"http://abcd.com?param=1&a=2"}
- 转发后:
{"url":"http://abcd.com?param=1\u0026a=2"}
查看源码
// String values encode as JSON strings coerced to valid UTF-8, |
含义说:
字符串值编码为强制转换为有效UTF-8的JSON字符串,用Unicode替换符文替换无效字节。 |
测试
测试代码:
package main |
输出:
"http://abcd.com?param=1\u0026a=2" |
解决方案
使用编码器:
bf := bytes.NewBuffer([]byte{}) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Bai's Blog!