从一个来源我得到以下格式的数据(带前导双引号)data := `"{\"u\":\"Mozilla\\\/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox\\\/11.0 (via ggpht.com GoogleImageProxy)\"}"`_, err := strconv.Unquote(data)if err != nil { panic(err)}我需要取消引用并将其转换为 json。但是由于像这里这样的尾随反斜杠Mozilla\\\/5.0得到错误invalid syntax。在 PHP 中,它是通过 double json_decodelike转换的json_decode(json_decode($data, true), true)如何在 go 中做同样的事情?正确取消转义此字符串。
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
该字符串是双重编码的 JSON。使用 JSON 解码器删除引号:
data := `"{\"u\":\"Mozilla\\\/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox\\\/11.0 (via ggpht.com GoogleImageProxy)\"}"`
var unquoted string
err := json.Unmarshal([]byte(data), &unquoted)
if err != nil {
// TODO: handle error
}
再次解码以获取用户代理字符串:
var v struct{ U string }
err = json.Unmarshal([]byte(unquoted), &v)
if err != nil {
// TODO: handle error
}
userAgent := v.U
在操场上运行程序。
- 1 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消