我從一個來源獲得以下格式的資料(帶前導雙引號)
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 中做同樣的事情?正確取消轉義此字串。
uj5u.com熱心網友回復:
該字串是雙重編碼的 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
在操場上運行程式。
uj5u.com熱心網友回復:
你不能只使用 strings.Trim() 并以這種方式洗掉 \ 和 " 字符嗎?那么你就必須使用 json.Marshall 字串?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365599.html
標籤:走
