英文:
How use object of []struct in golang
问题
我定义了一个结构体,如下所示:
type json-input []struct {
Data string `json:"data"`
}
可以使用以下方式解析 JSON 字符串:
data := &json-input{}
_ = json.Unmarshal([]byte(resp.Data), data)
要使用该结构体的对象来获取数据,可以通过索引访问每个元素的 Data
字段。例如:
firstData := (*data)[0].Data
secondData := (*data)[1].Data
这样就可以获取到第一个和第二个元素的 Data
数据。
英文:
I defined struct like:
type json-input []struct {
Data string `json:"data"`
}
that Unmarshal json string like
> [{"data":"some data"}, {"data":"some data"}]
data := &json-input{}
_ = json.Unmarshal([]byte(resp.Data), data)
How i can use object of this struct for turn of data
答案1
得分: 10
你不能在类型声明中使用连字符,并且你可能想要将其解组为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) // 输出 "some data" 和 "some more data"
}
}
链接:https://play.golang.org/p/giDsPzgHT_
英文:
You can't use hyphens in type declarations, and you probably want to unmarshal to resp
instead of resp.Data
; that is, you may want to do something like
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"
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论