我在使用 json 字符串時遇到了一個非常奇怪的錯誤。當我將字符串的鍵值對添加到 json 輸入時,首先引入了該問題,即"DeviceIdentifier": "device-id". 我將代碼縮減到顯示錯誤所需的最低限度。當我對該鍵值對中的數據進行幾乎任何更改時,錯誤就會消失,這對我來說似乎很奇怪。我可以使用其他鍵來規避錯誤,但似乎我在這里遺漏了一些東西。要么是這樣,要么庫函數似乎有問題......有什么想法嗎?package mainimport ( "encoding/json" "fmt")type S struct { Name string DeviceIdentifier []byte}func main() { var s S data := []byte(`{"Name": "test", "DeviceIdentifier": "device-id"}`) if err := json.Unmarshal(data, &s); err != nil { fmt.Println(err.Error()) }}去游樂場鏈接:http : //play.golang.org/p/huXuaokGikJson 包文檔:http : //golang.org/pkg/encoding/json/更新我剛剛發現當值字符串的長度可以被 4 整除時,編碼會成功,例如abcd并且abcdefgh有效,而abcde和 abcdefg` 則不然。現在我知道什么是 base64 字符串,錯誤很有意義。參考這里:維基百科:http : //en.wikipedia.org/wiki/Base64轉換工具:http : //www.string-functions.com/base64encode.aspx
Go - 奇怪的 json 連字符解組錯誤
慕工程0101907
2021-09-13 16:22:49