如何在golang中使用[] struct的对象

时间:2017-09-10 07:45:15

标签: go struct slice

我将struct定义为:

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

解组json字符串,如

  

[{“data”:“some data”},{“data”:“some data”}]

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

如何使用此结构的对象进行数据转换

1 个答案:

答案 0 :(得分:1)

您不能在类型声明中使用连字符,并且您可能希望解组为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"
    }
}

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