You just need to get the Serializer from the SearchClient, get your custom conventions and serialize the content.
JsonSerializer jsonSerializer = Serializer.CreateDefault();
Action customizeSerializer
= SearchClient.Instance.CustomizeSerializer;
customizeSerializer(obj: jsonSerializer);
IClientConventions defaultConventions = SearchClient.Instance.Conventions;
if (defaultConventions.ContractResolver.IsNotNull())
{
jsonSerializer.ContractResolver = defaultConventions.ContractResolver;
}
if (defaultConventions.CustomizeSerializer.IsNotNull())
{
defaultConventions.CustomizeSerializer(obj: jsonSerializer);
}
jsonSerializer.Serialize(value: content);
If there are any serialization errors you can return a warning, an error, whatever you prefer
You can get the complete validator in this gist (https://gist.github.com/jstemerdink/d7553deefb4cae809bd4b47bcec0a673)
Update: Also have a look at Brian’s post (https://www.brianweet.com/2019/03/29/find-serialization-exceptions.html)
Article originally published on Optimizely Development Blog: Check your content for indexing errors