Czy jest możliwość zwrócenia erroru, w przypadku gdy JSON
z Body nie reprezentuje Struktury? W poniższym przykładzie, gdy JSON jest niepoprawny, err jest nilem. W teorii, można sprawdzić czy struktura ma wszystkie pola puste ale co w przypadku gdy ktoś kto korzysta z API się po prostu pomylił i zrobił literówkę? Co w przypadku gdy np. ktoś chciał oddać jakiś produkt i jako cenę poda 0
(taka sama jak warość defaultowa) Nie da się tego rozróżnić od celowego wysłania JSONa z defaultowymi polami.
func main() {
wrongJson := "{\"nonExistingProperty\": 123}"
exampleStruct := new(ExampleStruct)
err := json.Unmarshal([]byte(wrongJson), &exampleStruct)
fmt.Println(*exampleStruct, err) // OUTPUT: { 0} <nil>
}
type ExampleStruct struct {
Foo string
Boo int
}
Znalazłem to: https://stackoverflow.com/questions/49585021/how-to-check-if-a-json-matches-a-struct-struct-fields ale czy jest jakaś inna opcja?