有没有办法动态解析json文件GO

a2mppw5e  于 2023-02-01  发布在  Go
关注(0)|答案(1)|浏览(141)

我有一个json文件,但是我不知道这个json文件的内容和格式是什么,它可以瞬间改变。
所以我不能创建一个struct并根据这个struct解析它。
有没有办法动态解析这个JSON文件并访问这个JSON中的值?
我什么都找不到,如果你能帮我我很乐意。

8zzbczxx

8zzbczxx1#

可以,可以在Go语言中使用内置的encoding/json包和接口类型动态解析JSON文件,下面是一个例子:

package main

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

func main() {
    // Read the JSON file into memory
    file, err := ioutil.ReadFile("file.json")
    if err != nil {
        fmt.Println(err)
        return
    }

    // Unmarshal the JSON into a dynamic interface
    var data interface{}
    err = json.Unmarshal(file, &data)
    if err != nil {
        fmt.Println(err)
        return
    }

    // Access the values using type assertions
    m := data.(map[string]interface{})
    for k, v := range m {
        fmt.Println(k, v)
    }
}

在本例中,json.Unmarshal函数用于将JSON文件解析为interface{}类型,这是Go语言中的动态类型,可以保存任何值,然后可以使用类型Assert将动态类型转换为更具体的类型,如map[string]interface{}来访问JSON中的值。
你是这个意思吗?

相关问题