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

标签 json go

我如何创建和数组 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/

相关文章:

javascript - JSON 无效字符语法错误 - Dojo

c++ - 调用Syscall函数时获取异常

time - 为什么 time.Parse 会错误地解析时间?

go - 如何根据属性呈现正确的 css 类?

java - tomcat上的 Multi-Tenancy

javascript - 尝试弄清楚如何按类别 JSON 对随机项目进行排序

Go:扩展未命名类型,例如 []string

go - 接口(interface)实现了一个接口(interface)

json - 使用 Kotlin 数据类在 Jackson 中区分 null 和缺失的属性

json - grunt-mocha-test JSON 报告器到没有 console.logs 的文件