I am not understanding where the error is, since after completing the struct, it appears to me undefined: Payload
This is a very annoying struct because it has enough nesting of structs and slices of structs
Could you help me solve this problem, because I can not solve it?
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)
}
Your internal struct
s aren’t declared anywhere - they’re all anonymous types. To actually explicitly instantiate them by name, they need to exist somewhere (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)
}