and*_*ndi 2 parsing json nested go

我是 golang 和 json 的新手,目前正在努力从系统中解析 json。

我在 go 中阅读了几篇关于动态 json 的博客文章,还尝试了像json2GoStructs 这样的工具使用这个工具解析我的 json 文件只是给了我一个巨大的结构,我发现它有点混乱。我也不知道如何获取我感兴趣的信息。

所以,这是我的问题

  1. 如何获取我感兴趣的信息?
  2. 解析复杂 json 的最佳方法是什么?

我只以下 3 个 json 字段感兴趣

Name
Guid
Task -> Property -> Name: Error

我感谢每一个提示、代码片段或解释!

这是我到目前为止所得到的(主要来自教程):

package main

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

func checkErr(err error) {
    if err != nil {
        panic(err)
    }
}

func readFile(filePath string) []byte {
    data, err := ioutil.ReadFile(filePath)
    checkErr(err)
    return data
}

func main() {
    path := "/Users/andi/Documents/tmp/wfsJob.json"
    data := readFile(path)

    var f interface{}

    err := json.Unmarshal(data, &f)
    checkErr(err)

    m := f.(map[string]interface{})

    for k, v := range m {
        switch vv := v.(type) {
        case string:
            fmt.Println(k, "is string", vv)
        case int:
            fmt.Println(k, "is int", vv)
        case []interface{}:
            fmt.Println(k, "is an array:")
            for i, u := range vv {
                fmt.Println(i, u)
            }
        default:
            fmt.Println(k, "is of a type I don't know how to handle")
        }
    }
}