Custom serialization with 7.0.0 Elasticsearch NEST

The documentation for custom-serialization in 7.x (current) doesn't seem to be updated as it doesn't seem to mention anything regarding the switch to Utf8Json in the 7.x version. It also talks about the current version as if it's 6.x. Was the Utf8Json change completely internal and alters nothing with how one should customise serialization?

I'm asking as the serializer we use which is based on the base class ConnectionSettingsAwareSerializerBase from NEST.JsonNetSerializer is behaving weirdly. When used any type of number is not formatted and any objects container a number are null. All the serializer does it override the CreateJsonConverters() and adds some user type converters.

I didn't include an example to reproduce the missing numbers error as I figured I might as well wait for a reply before I write one.

Thank you for raising the documentation about Serialization. It does need to be updated to reflect the move from Json.NET to Utf8Json

Custom serialization using Nest.JsonNetSerializer nuget package, or implementing your own source serializer should work the same in 7.x. Would you mind opening an issue to discuss?

I'll try to reproduce and create an issue when I do.
Thanks.

This can be closed.

I can't seem to reproduce it in another app (can't share code where it's happening).
Tracing the deserialization and seemingly random properties failed to be deserialized with the message "Verbose Could not find member 'x' on a.b.c.d.e Path 'w.x', line 40, position 22."

Other properties of the same type can be deserialized which is quite strange.
Should I open an issue with just this information or how should I proceed?

Yes, please open an issue so we can discuss :+1:

The issue was that after upgrading from 6.4.2 to 7.0.0 the way we were ignoring certain properties stopped working so fields which weren't supposed to be indexed were (NEST 7 ConnectionSettings DefaultMappingFor doesn't support base class mapping anymore) .
We use a custom serializer with converters for these types when reading from Elasticsearch and it failed to deserialize these fields which meant that all fields after the first instance of the type failed to be deserialized.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.