我正在尝试在下面创建以下json,但我没有得到它:
json
{
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "foo1",
"displayText": "foo2"
}
},
{
"basicCard": {
"formattedText": "foo3",
"imageDisplayOptions": "CROPPED"
}
}
]
}
}
问题是我有一个名为[]struct
的{{1}}(结构片),它有2个不同的结构Items
和SimpleResponse
,但是我无法挂载这个json。
出现错误:
不能使用原义的SimpleResponse
不能使用BasicCard文字
main.go
https://play.golang.org/p/Gbl0UNWhqko
BasicCard
您能帮我挂载这个json吗?
答案 0 :(得分:2)
Items
是一片结构,但您正在使用它,就好像它是单个Item
结构一样。如果切片的元素类型为Item
,则正确的语法应为:
group := RichResponse{
Items: Items{ // This is a slice
Item{ // This is an element in the slice
SimpleResponse{"foo1", "foo2"},
BasicCard{
FormattedText: "foo3",
ImageDisplayOptions: "CROPPED",
},
},
},
}
请注意,如果您不想要一些真正混乱的结构文字,则需要将Item
定义为命名类型。这是Playground上的一个有效示例:https://play.golang.org/p/pzO_w2cIeOJ