gpt4 book ai didi

json - 无法解码数组

转载 作者:IT王子 更新时间:2023-10-29 02:25:29 26 4
gpt4 key购买 nike

有这个 json 文件:

    {
"colors": [
["#7ad9ab", "#5ebd90", "#41a277", "#21875e", "#713517"],
["#5ebd90", "#41a277", "#21875e", "#006d46", "#561e00"],
["#005430"]
]
}

还有这段代码:

type Palette struct {
Colors []string
}

func TestStuff(t *testing.T) {
c, err := os.Open("palette.json")
if err != nil {
fmt.Printf("Error: %v", err.Error())
}
defer c.Close()
bc, _ := ioutil.ReadAll(c)
var palette []Palette //also tried with Palette

err = json.Unmarshal(bc, &palette)
if err != nil {
fmt.Printf("Error: %v \n", err.Error())
}
fmt.Printf("Data: %v", palette)

}

并不断获得:

Error: json: cannot unmarshal array into Go struct field Palette.Colors of type string

或者类似的,如果我改变调色板类型。提示?谢谢!

最佳答案

您的 JSON blob 在“colors”元素中有一个嵌套数组,因此您需要将颜色数组嵌套在 Palette 结构中。将 Palette 的声明修改为具有 [][]string 类型的 Colors 可解决此问题:

type Palette struct {
Colors [][]string
}

Playground link

关于json - 无法解码数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51657564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com