JsonSerializer and Null Value Handling

Jun 7, 2010 at 10:21 AM
Edited Jun 7, 2010 at 10:25 AM

Hi,

I'm currently working on a project where we need to do a bit of massaging of the first level of properties (the property names vary at runtime).
The remote end also requires that null values are given special values, instead of a standard null value.
I have JsonConverters for each of the types I need to serialize.

When I use JsonConvert - these JsonConverters are called for any null values.

However, using JsonSerializer, the JsonConverters are not called if the value passed to Serializer.Serialize is null.

The (possibly hacky) workaround that I have at the moment is something like this:

            if (PropertyValue == null)
            {
                foreach (JsonConverter converter in Serializer.Converters)
                {
                    if (converter.CanConvert(Property.PropertyType))
                    {
                        converter.WriteJson(Writer, PropertyValue, Serializer);
                        return;
                    }
                }
            }
            // else, let the serializer do the work:
            Serializer.Serialize(Writer, PropertyValue);


Is there another, better way of doing this?