Golang 解析 json日志文件
我们经常会碰到处理json 日志的情况 我这里我展示如何使用go 解析 json
s:=`{
"data":[
{"level":"info","time":"2021-07-27T19:29:11.161Z","caller":"gw/gw.go:107","msg":"request static","id":"5b32066efa995fb75d13","client":"27.17.124.113:46317","req":"/s/L3BkMDJfMTZfdXNlcjAxX2J1Y2tldDAyLzQxYTZmZDMxYWEyZTc1YzNj"},
{"level":"info","time":"2021-07-27T19:29:11.161Z","caller":"gw/gw.go:107","msg":"request static","id":"45085712c68fcddd7672","client":"27.17.124.113:46316","req":"/s/L2xjNTMuMTFfcHVidXJsX2J1Y2tldDAxLzk5OTAxOTA2MjgwODAwMDA2NDYyL"}
]
}`
通常来讲我们去解析这个json 先定义对应的struct 这里我就不演示这种方式了,我来换一种方式去解析
m:=sturct{
Data []struct{
ID string `json:"id"`
} `json:data`
}{}
//这里我们定义一个结构体包含id 的信息
err:=json.Unmarshal([]byte(s),&m)
if err!=nil{
fmt.Println(err)
return
}
for i := 0; i <len(m.Data) ; i++ {
fmt.Printf("%+v\n",m.Data[i].Id)
}
//打印结果为
//5b32066efa995fb75d13
//45085712c68fcddd7672