Open nlisker opened 3 years ago
@cowtowncoder I see that Jackson 2.15 got several updates for records handling, but this didn't get any attention. The closest was https://github.com/FasterXML/jackson-databind/issues/3297. Should I have reported this on databind?
Sure, for sake of completeness, it's fine to request it there.
I suspect chances of this getting implemented would be slim but who knows? Serialization definitely can not/should not be what toString()
gives (I'd be very much against trying to do that) but maybe others have better ideas.
Serialization definitely can not/should not be what
toString()
gives
But toString()
is what's used to serialize the key. Maybe the serialization part should also be configured especially for records?
Yeah we probably should rather fail than serialize using toString()
-- that is only used since for many other datatypes it works adequately. That handling predates introduction of Records by about decade.
seconding what @cowtowncoder says, i dont really see a good default string representation of records
Because the map key is a composite class, Jackson needs a deserializer like
However, records are special. Their default serialization and string representation are known. In this case it's
"Point[x=2, y=2]"
. This means that a deserializer could be synthesized for them without the user needing to specify one. Basically, it's "look inside[
]
and read thename=value
pairs". If the user decides to override the string representation of the record, then it's on them to provide a matching deserializer.