猿问

如何在数组列表中保存 []byte 数据

总结问题

我制作了一些从 toggl api 接收数据的应用程序。我尝试将 []byte 响应数据保存在 Go 中的数组列表中,以便稍后修改数据。我想知道如何将此响应 []byte json 样式数据转换和存储为数组列表。


显示一些代码

main.go



type togglData struct {

}


func GetTogglReports() []byte {

    //some code


    resp, err := client.Do(req)

    if err != nil {

        log.Fatal(err)

    }

    defer resp.Body.Close()


    data, err := ioutil.ReadAll(resp.Body)

    if err != nil {

        log.Fatal(err)

    }


    return data

}


func makeSurveyText() {

    // I want to save []byte data GetTogglReports() in array list here.

    var togglData []togglData

}


数据是这样的:


 {

    "total_grand":36004000,

    "total_billable":14400000,

    "total_currencies":[{"currency":"EUR","amount":40}],

    "data": [

      {

        "id":193009951,

        "title":{"project":"Toggl Development","client":null},

        "time":14400000,

        "total_currencies":[{"currency":"EUR","amount":0}],

        "items":[

          {

            "title":{"time_entry":"Hard work"},

            "time":14400000,

            "cur":"EUR",

            "sum":0,

            "rate":50

          }

        ]

      },{

        "id":null,

        "title":{"project":null,"client":null},

        "time":7204000,

        "total_currencies":[],

        "items":[

          {

            "title":{"time_entry":"No title yet"},

            "time":1000,

            "cur":"EUR",

            "sum":0,

            "rate":50

          }

        ]

      }

    ]

  }


ABOUTYOU
浏览 177回答 1
1回答

至尊宝的传说

第一步将您的 JSON 转换为 go 结构。为此,我总是使用像https://mholt.github.io/json-to-go/这样的在线转换器type AutoGenerated struct {    TotalGrand      int `json:"total_grand"`    TotalBillable   int `json:"total_billable"`    TotalCurrencies []struct {        Currency string `json:"currency"`        Amount   int    `json:"amount"`    } `json:"total_currencies"`    Data []struct {        ID    int `json:"id"`        Title struct {            Project string      `json:"project"`            Client  interface{} `json:"client"`        } `json:"title"`        Time            int `json:"time"`        TotalCurrencies []struct {            Currency string `json:"currency"`            Amount   int    `json:"amount"`        } `json:"total_currencies"`        Items []struct {            Title struct {                TimeEntry string `json:"time_entry"`            } `json:"title"`            Time int    `json:"time"`            Cur  string `json:"cur"`            Sum  int    `json:"sum"`            Rate int    `json:"rate"`        } `json:"items"`    } `json:"data"`}然后将 json 文件读入字节数组,即使用http.NewRequest("GET", url, nil),client.Do(req)和byte_array,err:=ioutil.ReadAll(resp.Body)使用make或new创建结构的实例将字节数组处理到结构实例中json.Unmarshal(byte_array, &instance_of_struct)然后,您将拥有一个包含来自 JSON 的数据的结构
随时随地看视频慕课网APP

相关分类

Go
我要回答