关于通过Struct解析嵌套JSON的问题
我有一个有趣的JSON文件,有点嵌套,我不能很好地说明如何正确解析它。有人能看一下下面的结构是否正确吗?我可以解析根级别的项目,但是我越想深入我就越迷路。请参阅下面我的代码: 我试图解析的JSON文件位于单独的文件中:关于通过Struct解析嵌套JSON的问题,json,go,Json,Go,我有一个有趣的JSON文件,有点嵌套,我不能很好地说明如何正确解析它。有人能看一下下面的结构是否正确吗?我可以解析根级别的项目,但是我越想深入我就越迷路。请参阅下面我的代码: 我试图解析的JSON文件位于单独的文件中: { "pushed": 090909099, "job_id": 17422, "processed": 159898989, "unit_report": [ {
{
"pushed": 090909099,
"job_id": 17422,
"processed": 159898989,
"unit_report": [
{
"meta": {
"file": {
"file_type": "Binary",
"file_name": "Bob.txt",
"file_path": "/usr/local/Bob.txt",
"size": 4563,
"entropy": 3.877,
"hashes": [
{
"name": "Uniq34",
"value": "02904234234234234243"
},
{
"name": "sha1",
"value": "23423423423423423423423"
},
{
"name": "sha256",
"value": "523412423424234234234"
}
]
},
我的结构设置在下面的Go文件中:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
// Report struct
type Report struct {
Pushed int `json:"pushed"`
JobID int `json:"job_id"`
Processed int `json:"processed"`
SetReport []struct {
Meta struct {
File struct {
FileType string `json:"file_type"`
FileName string `json:"file_name"`
FilePath string `json:"file_path"`
Size int `json:"size"`
Entropy int `json:"entropy"`
}
}
}
}
代码的问题是您希望
json
数据中的unit\u report
与Go
struct中的SetReport
匹配
为此,您可以将json:“unit\u report
设置为SetReport
字段,或者将SetReport
重命名为UnitReport
要么:
Processed int`json:“已处理”`
SetReport[]结构{
...
}`json:'unit\u report`//在此处查看更改
或:
Processed int`json:“已处理”`
UnitReport[]结构{//请参见此处的更改
...
}
摆脱匿名结构将使这更容易推理。结构类型字段缺少json标记。只需使用