下面的代码,但简短的版本是我在结构中有一个多维数组(切片)。我试图创建一个可以转储任何结构的方法,它会写入文件,但内部数组是...好吧,我不确定说实话。以下是较大代码库的简洁版本,但需要说明重点。我对Go比较陌生,所以也许它是关于类型转换的东西,我只是不知道。uint8
package main
import (
"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
拉丁的传说
相关分类