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

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

用嵌套數組編組 JSON?

用嵌套數組編組 JSON?

Go
汪汪一只貓 2022-10-17 19:23:00
我想像這樣創建 JSON:{  "name": "val1",  "version": "val2",  "type": "val3",  "settings": [    "setting1,    "setting2",    "setting3",    [      "option1",      "option2"    ]   ]}但我不知道如何在里面創建嵌套數組settings:package mainimport (        "encoding/json"        "fmt")type Config struct {        Name     string   `json:"name"`        Version  string   `json:"version"`        Type     string   `json:"type"`        Settings []string `json:"settings"`}func main() {        settings := []string{"setting1", "setting2", "setting3"}        options := []string{"option1", "option2"}        setopts := append(settings, options...)        c := &Config{"val1", "val2", "val3", setopts}        j, err := json.Marshal(c)        if err != nil {                panic(err)        }        fmt.Println(string(j))}輸出通過 jq 管道傳輸以提高可讀性:$ ./main | jq{  "name": "val1",  "version": "val2",  "type": "val3",  "settings": [    "setting1",    "setting2",    "setting3",    "option1",    "option2"  ]}結果是option1和option2是數組內的值settings,但它們應該在嵌套數組內settings。此外,編組時選項可能并不總是存在,在這些情況下不應創建嵌套數組。我怎樣才能做到這一點?
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您在此處顯示的輸出:


    "setting1",

    "setting2",

    "setting3",

    [

      "option1",

      "option2"

    ]

可以描述為 JSON 字符串或字符串數組。


您可以使用 來建模,并附[]interface{}加到字符串或切片:


type Config struct {

        Name     string        `json:"name"`

        Version  string        `json:"version"`

        Type     string        `json:"type"`

        Settings []interface{} `json:"settings"`

}


func main() {

        settings := []interface{}{

              "setting1", 

              "setting2", 

              "setting3",

              []string{"option1", "option2"},

        }


        c := &Config{"val1", "val2", "val3", settings}


        j, err := json.Marshal(c)

        if err != nil {

                panic(err)

        }


        fmt.Println(string(j))

}

游樂場:https ://go.dev/play/p/8LPAVBPmd8w


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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