golang關於json庫的一個比較容易陷入的坑 uint8[]數組的json轉換問題.

類似這個CA如果實例轉化成json.List會變成字符串.

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. 只有 int8 byte uint8 這種8位的json庫會給我們當成字符串處理.想要解決.如果拍腦袋就不能用這幾種類型了.需要使用16 32 64位的數字纔可以正常轉換成json字符串.

{"List":[1,2,3,4,5,6,7,8,9,0]}


但是不用擔心. Unmarshal這個 我們認爲不想要的json字符串 重新到CA的其他實例 會得到想要的結果.

.如果是跨語言的json通信就要小心了.

發佈了104 篇原創文章 · 獲贊 7 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章