gpt4 book ai didi

go - 加载json数组配置

转载 作者:数据小太阳 更新时间:2023-10-29 03:04:23 25 4
gpt4 key购买 nike

我想加载 json 配置文件到 go lang 应用程序。配置数据是数组,需要动态设置。

[ { "key": "A", "data": [1, 2, 3]}, { "key": "B", "data": [1, 2]}, { "key": "C", "data": [1, 3]} ]

并尝试像这样加载。

package main

import (
"flag"
"fmt"
"os"
"encoding/json"
)

type ColInfo struct {
key string `json:"key"`
col []int `json:"data"`
}
type Config struct {
colInfos []ColInfo
}

func main() {
flag.Parse()
file, _ := os.Open("col.conf")
decoder := json.Marshal(file)
configuration := Config{}
if err := decoder.Decode(&configuration); err != nil {
fmt.Println(err)
}
println( configuration.colInfos[0].key)
}

这是我遇到的错误

./test2.go:23: multiple-value json.Marshal() in single-value context

我这有什么问题吗?

最佳答案

您需要更改“ColInfo”结构键,以便“json”包可以读取它们。我附上了一个工作代码片段

package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)

type ColInfo struct {
Key string `json:"key"`
Col []int `json:"data"`
}
type Config struct {
colInfos []ColInfo
}

func main() {
file, err := ioutil.ReadFile("configurtaion.txt")
if err != nil {
fmt.Printf("File error: %v\n", err)
os.Exit(1)
}
cfg := Config{}
json.Unmarshal(file, &cfg.colInfos)
fmt.Println(cfg.colInfos[0])
}

关于go - 加载json数组配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45156553/

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