I ran into an issue when trying to custom unmarshal a struct when the fuzzy decoder is registered.
Scenario is that an element in the json can either be a struct/string/int or a slice to that. To solve that I use a custom struct with an custom unmarshaller.
However if the json I want to decode starts with [ the tolerateEmptyArrayExtension replaces it completly with {}. Even if the array is not empty, as it name of this extension suggests.
To not break functionality I did not change the logic of the decoder itself. Instead I only activate the decoder when the target does not implement the json.Unmarshaler interface. When a struct implements json.Unmarshaler it should handle the possible empty array syntax itself.
I ran into an issue when trying to custom unmarshal a struct when the fuzzy decoder is registered.
Scenario is that an element in the json can either be a struct/string/int or a slice to that. To solve that I use a custom struct with an custom unmarshaller.
However if the json I want to decode starts with
[
the tolerateEmptyArrayExtension replaces it completly with{}
. Even if the array is not empty, as it name of this extension suggests.To not break functionality I did not change the logic of the decoder itself. Instead I only activate the decoder when the target does not implement the
json.Unmarshaler
interface. When a struct implementsjson.Unmarshaler
it should handle the possible empty array syntax itself.