关于通过 Struct 解析嵌套 JSON 的问题

我有一个有趣的 JSON 文件,它有点嵌套,我无法很好地举例说明如何正确解析它。有人可以看看下面,看看我的结构是否正确,我可以解析根级别的项目,但我尝试越深入,我就会迷路。请在下面查看我的代码:


我尝试解析的 JSON 文件位于单独的文件中:


{

  "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"`

            }

        }

    }

}


慕容3067478
浏览 131回答 1
1回答

料青山看我应如是

unit_report您的代码的问题是您希望json数据与SetReport结构匹配Go。为此,您可以设置json:"unit_report为您的SetReport字段或重命名SetReport为UnitReport.任何一个:Processed int `json:"processed"`SetReport  []struct {...} `json:"unit_report`  // See the changes here或者:Processed int `json:"processed"`UnitReport  []struct { // See the changes here    ...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go