Only use the tolerateEmptyArrayExtension if no custom unmarshaller is used #702
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.