我正在尝试解组原始json字符串。编码似乎有错误,但我不太明白。包主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 字符串转义码中的无效字符“x”如果传输条目被删除,它会起作用。这是一个工作操场。
2 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您输入的 JSON 无效。JSON规范指出
除了必须转义的代码点外,所有代码点都可以放在引号内:引号 (U+0022)、反斜线 (U+005C) 和控制字符 U+0000 到 U+001F。
此外,虽然有两个字符的转义序列,但它\x
不是其中之一,因此它被 Go 解析器正确解释为无效的转义序列。\\
如果你想在你的 JSON 中有一个反斜杠文字,它需要在 JSON 输入本身中表示。
(请注意,这不是您的 Go 字符串文字的问题,因为您已经在使用原始 ( ``
) 字符串文字——JSON 本身需要有两个反斜杠。)
- 2 回答
- 0 关注
- 125 浏览
添加回答
举报
0/150
提交
取消