我想像这样创建 JSON:
{
"name": "val1",
"version": "val2",
"type": "val3",
"settings": [
"setting1,
"setting2",
"setting3",
[
"option1",
"option2"
]
]
}
但我不知道如何在里面创建嵌套数组settings:
package main
import (
"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。此外,编组时选项可能并不总是存在,在这些情况下不应创建嵌套数组。
我怎样才能做到这一点?
慕盖茨4494581
相关分类