我不知道错误在哪里,因为在完成结构后,它在我看来 undefined: Payload
这是一个非常讨厌的结构,因为它有足够的结构嵌套和结构切片
你能帮我解决这个问题吗,因为我无法解决它?
https://play.golang.org/p/QewpCfTWY0l
package main
import (
"fmt"
)
type DialogFlowResponseSuggestion struct {
Payload struct {
Google struct {
ExpectUserResponse bool `json:"expectUserResponse"`
RichResponse struct {
Items []struct {
SimpleResponse struct {
TextToSpeech string `json:"textToSpeech"`
} `json:"simpleResponse"`
} `json:"items"`
Suggestions []struct {
Title string `json:"title"`
} `json:"suggestions"`
} `json:"richResponse"`
} `json:"google"`
} `json:"payload"`
}
func main() {
in := DialogFlowResponseSuggestion{
Payload: Payload{
Google: Google{
ExpectUserResponse: true,
RichResponse: RichResponse{
Items: []Items{
Items{SimpleResponse: SimpleResponse{dialog.MReturn.Message}},
},
Suggestions: []Suggestions{
Suggestions{Title: "Suggestion Chips"},
Suggestions{Title: "suggestion 1"},
Suggestions{Title: "suggestion 2"},
},
},
},
},
}
fmt.Println(in)
}
Run Code Online (Sandbox Code Playgroud)
您的内部structs未在任何地方声明 - 它们都是匿名类型.要按名称实际显式实例化它们,它们需要存在于某个地方(playground):
package main
import (
"fmt"
)
type SimpleResponse struct {
TextToSpeech string `json:"textToSpeech"`
}
type Item struct {
SimpleResponse SimpleResponse `json:"simpleResponse"`
}
type Suggestion struct {
Title string `json:"title"`
}
type RichResponse struct {
Items []Item `json:"items"`
Suggestions []Suggestion `json:"suggestions"`
}
type Google struct {
ExpectUserResponse bool `json:"expectUserResponse"`
RichResponse RichResponse `json:"richResponse"`
}
type Payload struct {
Google Google `json:"google"`
}
type DialogFlowResponseSuggestion struct {
Payload Payload `json:"payload"`
}
func main() {
in := DialogFlowResponseSuggestion{
Payload: Payload{
Google: Google{
ExpectUserResponse: true,
RichResponse: RichResponse{
Items: []Item{
Item{SimpleResponse: SimpleResponse{dialog.MReturn.Message}},
},
Suggestions: []Suggestion{
Suggestion{Title: "Suggestion Chips"},
Suggestion{Title: "suggestion 1"},
Suggestion{Title: "suggestion 2"},
},
},
},
},
}
fmt.Println(in)
}
Run Code Online (Sandbox Code Playgroud)