golang中如何使用[]struct对象

Vla*_*lav 2 struct go slice

我定义了结构,如:

type json-input []struct {
    Data    string  `json:"data"`
}
Run Code Online (Sandbox Code Playgroud)

解组 json 字符串就像

[{“数据”:“一些数据”},{“数据”:“一些数据”}]

data := &json-input{}
_ = json.Unmarshal([]byte(resp.Data), data)
Run Code Online (Sandbox Code Playgroud)

我如何使用这个结构的对象来转换数据

fug*_*ede 6

您不能在类型声明中使用连字符,并且您可能希望解组为resp而不是resp.Data; 也就是说,你可能想要做类似的事情

import (
    "encoding/json"
    "fmt"
)

type jsoninput []struct {
    Data string `json:"data"`
}

func main() {
    resp := `[{"data":"some data"}, {"data":"some more data"}]`
    data := &jsoninput{}
    _ = json.Unmarshal([]byte(resp), data)
    for _, value := range *data {
        fmt.Println(value.Data)  // Prints "some data" and "some more data"
    }
}
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/giDsPzgHT_