我在使用 json 字符串时遇到了一个非常奇怪的错误。当我将字符串的键值对添加到 json 输入时,首先引入了该问题,即"DeviceIdentifier": "device-id". 我将代码缩减到显示错误所需的最低限度。当我对该键值对中的数据进行几乎任何更改时,错误就会消失,这对我来说似乎很奇怪。我可以使用其他键来规避错误,但似乎我在这里遗漏了一些东西。要么是这样,要么库函数似乎有问题......有什么想法吗?
package main
import (
"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/huXuaokGik
Json 包文档: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
白衣非少年
30秒到达战场
相关分类