取消引用带有多个反斜杠的字符串

从一个来源我得到以下格式的数据(带前导双引号)


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 中做同样的事情?正确取消转义此字符串。


30秒到达战场
浏览 94回答 1
1回答

繁星淼淼

该字符串是双重编码的 JSON。使用 JSON 解码器删除引号:data := `"{\"u\":\"Mozilla\\\/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox\\\/11.0 (via ggpht.com GoogleImageProxy)\"}"`var unquoted stringerr := 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在操场上运行程序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go