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

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

在 Go 中編組多維數組

在 Go 中編組多維數組

Go
烙印99 2022-10-04 19:41:08
下面的代碼,但簡短的版本是我在結構中有一個多維數組(切片)。我試圖創建一個可以轉儲任何結構的方法,它會寫入文件,但內部數組是...好吧,我不確定說實話。以下是較大代碼庫的簡潔版本,但需要說明重點。我對Go比較陌生,所以也許它是關于類型轉換的東西,我只是不知道。uint8package mainimport (    "encoding/json"    "fmt"    "io/ioutil")type MyStruct struct {    MyArray [][]uint8 `json:"arr"`    Name    string    `json:"name"`}func CreateMyStruct(name string, size uint16, fill uint8) *MyStruct {    var m [][]uint8    var i, j uint16    for i = 0; i < size; i++ {        sl := []uint8{}        for j = 0; j < size; j++ {            sl = append(sl, fill)        }        m = append(m, sl)    }    return &MyStruct{        MyArray: m,        Name:    name,    }}func main() {    myStruct := CreateMyStruct("bobby", 4, 1)    fmt.Printf("%+v\n", myStruct)    str, _ := json.Marshal(myStruct)    fmt.Printf("%+v\n", str)    ioutil.WriteFile("my.json", str, 0644)}輸出為:$ go run test.go&{MyArray:[[1 1 1 1] [1 1 1 1] [1 1 1 1] [1 1 1 1]] Name:bobby}[123 34 97 114 114 34 58 91 34 65 81 69 66 65 81 61 61 34 44 34 65 81 69 66 65 81 61 61 34 44 34 65 81 69 66 65 81 61 61 34 44 34 65 81 69 66 65 81 61 61 34 93 44 34 110 97 109 101 34 58 34 98 111 98 98 121 34 125]$ cat my.json{"arr":["AQEBAQ==","AQEBAQ==","AQEBAQ==","AQEBAQ=="],"name":"bobby"}顯然,我期待這樣的東西:[[1,1,1,1]] // etc
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

在Golang中是一個別名,并編碼為base64編碼的字符串(如您所見):[]byte[]uint8json.Marshall[]byte

https://pkg.go.dev/encoding/json#Marshal

我懷疑解決方案是編寫自己的 JSON 編組程序來根據需要生成 JSON。

自定義編組器的示例包含在包的文檔中:

https://pkg.go.dev/encoding/json#example-package-CustomMarshalJSON

這里: https://play.golang.org/p/N2K8QfmPNnc

在我的手機上繁瑣地打字,所以很抱歉,這是黑客


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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