Hi All,
I am trying to validate the json array. First I unmarshall it to the array of Structs.
package main
import (
"encoding/json"
"fmt"
"github.com/go-playground/validator"
)
var validate *validator.Validate
type Event struct {
Name string `json:"name" validate:"required"`
Type string `json:"type" validate:"required"`
}
func main() {
payload := `[{"name":"bitrate_adjusted","type":"quality"}, {"name":"play","type":"playback"}]`
validate := validator.New()
var plStruct []Event
fmt.Printf("PayLoad: %s\n\n", payload)
if err := json.Unmarshal([]byte(payload), &plStruct); err != nil {
fmt.Printf("PayLoad Struct: %s", plStruct)
fmt.Printf("Error in payload: %s\n", err)
}
fmt.Printf("PayLoad Struct: %s\n", plStruct)
if err := validate.Struct(plStruct); err != nil {
fmt.Printf("Error Validating Payload: %s\n", err)
} else {
fmt.Printf("no issues...")
}
}
Error:
PayLoad: [{"name":"bitrate_adjusted","type":"quality"}, {"name":"play","type":"playback"}]
PayLoad Struct: [{bitrate_adjusted quality} {play playback}]
Error Validating Payload: validator: (nil []main.Event)
Is there any way to validate the array of events directly without using the loop.