我从一个来源获取以下格式的数据(带前导双引号)
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)
}
Run Code Online (Sandbox Code Playgroud)
我需要取消引号并将其转换为 json。但由于像这里这样的尾部反斜杠Mozilla\\\/5.0会出现错误invalid syntax。
在PHP中,它是通过double json_decodelike转换的json_decode(json_decode($data, true), true)
如何在 go 中做同样的事情?正确地取消转义该字符串。
该字符串是双重编码的 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
}
Run Code Online (Sandbox Code Playgroud)
再次解码以获取用户代理字符串:
var v struct{ U string }
err = json.Unmarshal([]byte(unquoted), &v)
if err != nil {
// TODO: handle error
}
userAgent := v.U
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
992 次 |
| 最近记录: |