第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在 Go 中將 JSON 解組為地圖

在 Go 中將 JSON 解組為地圖

Go
料青山看我應(yīng)如是 2021-10-18 10:20:25
我無法弄清楚如何將 JSON 文件的“子部分”加載到地圖元素中。背景:我試圖解組具有嚴(yán)格結(jié)構(gòu)的有點(diǎn)復(fù)雜的配置文件,因此我認(rèn)為最好解組為“靜態(tài)”結(jié)構(gòu)而不是接口{}。例如,這是一個(gè)簡單的 JSON 文件:{    "set1": {        "a":"11",        "b":"22",        "c":"33"    }}此代碼有效:package mainimport (    "encoding/json"    "fmt"    "io/ioutil"    "os")type JSONType struct {    FirstSet ValsType `json:"set1"`}type ValsType struct {    A string `json:"a"`    B string `json:"b"`    C string `json:"c"`}func main() {    file, e := ioutil.ReadFile("./test1.json")    if e != nil {        fmt.Println("file error")        os.Exit(1)    }    var s JSONType    json.Unmarshal([]byte(file), &s)    fmt.Printf("\nJSON: %+v\n", s)}但這不會:package mainimport (    "encoding/json"    "fmt"    "io/ioutil"    "os")type JSONType struct {    FirstSet ValsType `json:"set1"`}type ValsType struct {    Vals map[string]string}func main() {    file, e := ioutil.ReadFile("./test1.json")    if e != nil {        fmt.Println("file error")        os.Exit(1)    }    var s JSONType    s.FirstSet.Vals = map[string]string{}    json.Unmarshal([]byte(file), &s)    fmt.Printf("\nJSON: %+v\n", s)}未加載 Vals 地圖。我究竟做錯(cuò)了什么?謝謝你的幫助!這是一個(gè)更好的例子:{    "set1": {        "a": {            "x": "11",            "y": "22",            "z": "33"        },        "b": {            "x": "211",            "y": "222",            "z": "233"        },        "c": {            "x": "311",            "y": "322",            "z": "333"        },    }}代碼:package mainimport (    "encoding/json"    "fmt"    "io/ioutil"    "os")type JSONType struct {    FirstSet map[string]ValsType `json:"set1"`}type ValsType struct {    X string `json:"x"`    Y string `json:"y"`    Z string `json:"z"`}func main() {    file, e := ioutil.ReadFile("./test1.json")    if e != nil {        fmt.Println("file error")        os.Exit(1)    }    var s JSONType    json.Unmarshal([]byte(file), &s)    fmt.Printf("\nJSON: %+v\n", s)}
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

我相信這是因?yàn)槟哪P椭杏蓄~外的間接層。


type JSONType struct {

    FirstSet map[string]string `json:"set1"`

}

應(yīng)該夠了。如果您map[string]string在 json 中指定對象被識別為該映射。你創(chuàng)建了一個(gè)結(jié)構(gòu)來包裝它,但是像這樣的一團(tuán)json;


{

    "a":"11",

    "b":"22",

    "c":"33"

}

其實(shí)可以直接解組成 map[string]string


編輯:基于評論的其他一些模型


type JSONType struct {

    FirstSet map[string]Point `json:"set1"`

}


type Point struct {

     X string `json:"x"`

     Y string `json:"y"`

     Z string `json:"z"`

}

這使您的 3-d 點(diǎn)成為靜態(tài)類型的結(jié)構(gòu),這很好。如果您想做快速而骯臟的事情,您也可以使用map[string]map[string]string which 將提供地圖地圖,以便您可以訪問點(diǎn)值,例如FirstSet["a"]["x"],它會返回"11".


第二次編輯;顯然我沒有仔細(xì)閱讀你的代碼,因?yàn)樯厦娴睦邮且粯拥?。基于此,我猜你想?/p>


 FirstSet map[string]map[string]string `json:"set1"`

選項(xiàng)。盡管在您編輯后我并不完全清楚。


查看完整回答
反對 回復(fù) 2021-10-18
  • 1 回答
  • 0 關(guān)注
  • 212 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號