gpt4 book ai didi

json - 多个 map[string] 接口(interface)并将它们映射到多个 json 文件 GOLANG

转载 作者:行者123 更新时间:2023-12-01 21:13:07 25 4
gpt4 key购买 nike

我如何创建和数组 maps[string]interface 来添加多个 json 文件(不是所有的 json 文件,而是不同的文件)。我创建了一个代码,它将所有 json 文件添加到一个中。但将来我需要比较 map[string]interface 中的字段。我认为需要创建一个循环。这是我的程序代码:

var master map[string]interface{}

func main() {
fileIndex := 3 // three json files. All named test1.json, test2.json and test3.json
for i := 1; i <= fileIndex; i++ {
fileName := fmt.Sprintf("%s%d%s", "test", i, ".json")
// Open jsonFile
jsonFile, err := os.Open(fileName)
if err != nil {
log.Println("Error:", err)
}

defer jsonFile.Close()

byteValue, _ := ioutil.ReadAll(jsonFile)

json.Unmarshal(byteValue, &master)

fmt.Println(master)

}
}

这里是我的 3 json:
第一的:
 {
"name":"Kate",
"date":"2013-04-23T19:24:59.511Z",
"data":"is nice"
}

第二:
{
"name":"Gleison",
"date":"2012-04-23T19:25:00.511Z",
"data":"is a good person"
}

第三:
{
"name":"Rodrigo",
"date":"2013-04-23T20:24:59.511Z",
"data":"is kind"
}

有必要将它们分成不同的map[string]接口(interface)。无需创建结构。

最佳答案

对于数组,我认为您正在寻找 []map[string]interface{}。如果我正确理解了您的问题,您可以简单地创建此变量并附加它
这是一个修改过的例子

package main

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

func main() {

var master map[string]interface{}
var allMaster []map[string]interface{}

fileIndex := 3 // three json files. All named test1.json, test2.json and test3.json
for i := 1; i <= fileIndex; i++ {
fileName := fmt.Sprintf("%s%d%s", "test", i, ".json")
// Open jsonFile
jsonFile, err := os.Open(fileName)
if err != nil {
log.Println("Error:", err)
}

defer jsonFile.Close()

byteValue, _ := ioutil.ReadAll(jsonFile)

err = json.Unmarshal(byteValue, &master)
if err != nil {
log.Fatal(err)
}

allMaster = append(allMaster, master)
fmt.Println(allMaster)

}
}

关于json - 多个 map[string] 接口(interface)并将它们映射到多个 json 文件 GOLANG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62482884/

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