gpt4 book ai didi

go - 无法将 JSON 解码为结构

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

我想将以下 JSON 解码为一个结构:

{"MAIN":{"data":[{"KEY1":"1111111","KEY2":"2222222","KEY3":0,"KEY4":"AAAAAAA","KEY5":"9999","KEY6":"4","KEY7":"BBBBBBB"}]}}

我尝试以各种方式修改 jsonStruct,但该结构始终为空:

package main

import (
"encoding/json"
"fmt"
)

type jsonStruct struct {
main struct {
data []struct {
Key1 string `json:"KEY1"`
Key2 string `json:"KEY2"`
Key3 int `json:"KEY3"`
Key4 string `json:"KEY4"`
Key5 string `json:"KEY5"`
Key6 string `json:"KEY6"`
Key7 string `json:"KEY7"`
} `json:"data"`
} `json:"MAIN"`
}

func main() {
jsonData := []byte(`{"MAIN":{"data":[{"KEY1":"1111111","KEY2":"2222222","KEY3":0,"KEY4":"AAAAAAA","KEY5":"9999","KEY6":"4","KEY7":"BBBBBBB"}]}}`)

var js jsonStruct

err := json.Unmarshal(jsonData, &js)
if err != nil {
panic(err)
}

fmt.Println(js)
}

输出:

{{[]}}

我以前用过的JSON里面没有括号,所以我怀疑问题出在他们身上。

有人能帮忙吗?

https://play.golang.org/p/pymKbOqcM-

最佳答案

发生这种情况是因为其他包 (encoding/json) 无法访问私有(private)字段(即使使用反射)。在 go 中,私有(private)字段是以小写字符开头的字段。要解决此问题,请让您的结构包含公共(public)字段(以大写字母开头):

type jsonStruct struct {
Main struct {
Data []struct {
Key1 string `json:"KEY1"`
Key2 string `json:"KEY2"`
Key3 int `json:"KEY3"`
Key4 string `json:"KEY4"`
Key5 string `json:"KEY5"`
Key6 string `json:"KEY6"`
Key7 string `json:"KEY7"`
} `json:"data"`
} `json:"MAIN"`
}

https://play.golang.org/p/lStXAvDtpZ

关于go - 无法将 JSON 解码为结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41900724/

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