and*_*ndi 2 parsing json nested go
我是 golang 和 json 的新手,目前正在努力从系统中解析 json。
我在 go 中阅读了几篇关于动态 json 的博客文章,还尝试了像json2GoStructs 这样的工具使用这个工具解析我的 json 文件只是给了我一个巨大的结构,我发现它有点混乱。我也不知道如何获取我感兴趣的信息。
所以,这是我的问题:
- 如何获取我感兴趣的信息?
- 解析复杂 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")
}
}
}