亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為 []byte 的 json.Marshal 獲取空列表 [] 而不是 null?

如何為 []byte 的 json.Marshal 獲取空列表 [] 而不是 null?

Go
莫回無 2023-02-06 19:36:25
使用字符串時很容易得到一個空列表[]string{}:import (    "encoding/json"    "fmt")func main() {    slice1 := []string{} // non-nil but zero-length    json1, _ := json.Marshal(slice1)    fmt.Printf("%s\n", json1) // []}上面代碼的輸出是[],但是當我[]byte使用[]byte{}returns 時""。我應該如何獲得像我進入的那樣的空列表[]string{}?import (    "encoding/json"    "fmt")func main() {    slice2 := []byte{}    json2, _ := json.Marshal(slice2)    fmt.Printf("%s\n", json2) // ""}
查看完整描述

1 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

請參閱文檔

數組和切片值編碼為 JSON 數組,除了 []byte 編碼為 base64 編碼的字符串,nil 切片編碼為空 JSON 值。

粗體部分是你得到的原因""。如果你想要[]from ,你需要一個實現接口[]byte{}的自定義命名類型。[]bytejson.Marshaler

或者,如果您要查找“整數片段”,則使用[]Nwhere Ncan be any of the basic integer types 而不是uint8類型。該uint8類型將不起作用,因為byteis 的別名與uint8so[]uint8相同,[]byte并且json.Marshal也會""為其輸出。


查看完整回答
反對 回復 2023-02-06
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號