Open geoffreywiseman opened 5 years ago
I think this is doable for 3.x, with lenient
property of @JsonFormat
(and matching configOverride
s).
Then again I wonder if it'd make sense to consider more generic approach to allowing coercion, something pluggable externally. And probably also tightening default settings to maybe only allow:
strict
handling: only allow boolean json value (and null
possibly, depending on null-settings)lenient
handling, default: allow Strings ("true", "false"), integers 0 and 1. -- String part may be challenging as I expect there to be no end to requests for other alternatives (case-insensitive, "t"/"f" etc etc).
I'd love to have a separate mapping feature disable to coercion of numbers to booleans without disabling a bunch of other scalar features.
If someone supplies a numeric string like "800" that I'm mapping to an integer field, I'm happy for Jackson to coerce the value to 800.
On the other hand, if someone supplies
"isOrganization": 12
, I don't want that to turn intotrue
, because I suspect that12
wasn't intended as a boolean value, that there's some other kind of mapping problem going on.To be honest, I'm even ok with the 0/1 boolean mapping, I just don't want other numbers coerced to boolean, because I'm wary of it masking problems.