我正在嘗試解組原始json字符串。編碼似乎有錯(cuò)誤,但我不太明白。包主import ( "encoding/json" "fmt" "log")type Foo struct { Transmission string `json:"transmission"` Trim string `json:"trim"` Uuid string `json:"uuid"` Vin string `json:"vin"`}func main() { var foo Foo sample := `{ "transmission": "continuously\x20variable\x20automatic", "trim": "SL", "uuid" : "6993e4090a0e0ae80c59a76326e360a1", "vin": "5N1AZ2MH6JN192059" }` err := json.Unmarshal([]byte(sample), &foo) if err != nil { log.Fatal(err) } fmt.Println(foo)}2009/11/10 23:00:00 字符串轉(zhuǎn)義碼中的無效字符“x”如果傳輸條目被刪除,它會(huì)起作用。這是一個(gè)工作操場。
2 回答

蝴蝶不菲
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
您輸入的 JSON 無效。JSON規(guī)范指出
除了必須轉(zhuǎn)義的代碼點(diǎn)外,所有代碼點(diǎn)都可以放在引號(hào)內(nèi):引號(hào) (U+0022)、反斜線 (U+005C) 和控制字符 U+0000 到 U+001F。
此外,雖然有兩個(gè)字符的轉(zhuǎn)義序列,但它\x
不是其中之一,因此它被 Go 解析器正確解釋為無效的轉(zhuǎn)義序列。\\
如果你想在你的 JSON 中有一個(gè)反斜杠文字,它需要在 JSON 輸入本身中表示。
(請注意,這不是您的 Go 字符串文字的問題,因?yàn)槟呀?jīng)在使用原始 (?``
) 字符串文字——JSON 本身需要有兩個(gè)反斜杠。)

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以\x
使用函數(shù)\\x
替換string.Replace()
。然后,Unmarshal 替換的字符串。
- 2 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)
0/150
提交
取消