golangはjsonライブラリの1つの比較的に陥りやすい穴uint 8[]配列のjson変換問題について.
605 ワード
このようなCAは、インスタンスがjsonに変換するとする.Listは文字列になります.
私たちが望んでいるのは正常なjsonですint 8 byte uint 8という8ビットのjsonライブラリだけが文字列として処理してくれます.解決したい頭を叩くとこのいくつかのタイプは使えません.正常にjson文字列に変換するには、16,32,64ビットの数字が必要である.
でも心配しないでください.Unmarshalという私たちが望んでいないjson文字列をCAの他のインスタンスに再接続すると、望ましい結果が得られると思います.
.言語をまたがるjson通信であれば気をつけなければならない.
type CA struct {
List []uint8
}
func main() {
ca := CA{[]uint8{1,2,3,4,5,6,7,8,9,0}}
r, _ := json.Marshal(ca)
fmt.Println(string(r)) //{"List":"AQIDBAUGBwgJAA=="}
}
私たちが望んでいるのは正常なjsonですint 8 byte uint 8という8ビットのjsonライブラリだけが文字列として処理してくれます.解決したい頭を叩くとこのいくつかのタイプは使えません.正常にjson文字列に変換するには、16,32,64ビットの数字が必要である.
{"List":[1,2,3,4,5,6,7,8,9,0]}
でも心配しないでください.Unmarshalという私たちが望んでいないjson文字列をCAの他のインスタンスに再接続すると、望ましい結果が得られると思います.
.言語をまたがるjson通信であれば気をつけなければならない.