Чтобы немного пояснить очень полезный ответ GlennG (перевод синтаксиса с C # на VB.Net не всегда «очевиден»), вы также можете декорировать свойства отдельных классов, чтобы управлять обработкой нулевых значений. Если вы сделаете это, не используйте глобальные JsonSerializerSettings из предложения GlennG, в противном случае он переопределит отдельные декорации. Это очень удобно, если вы хотите, чтобы в JSON появлялся пустой элемент, чтобы потребителю не приходилось выполнять какую-либо особую обработку. Например, если потребителю нужно знать, что массив необязательных элементов обычно доступен, но в настоящее время он пуст ... Декорация в объявлении свойства выглядит следующим образом:
<JsonPropertyAttribute("MyProperty", DefaultValueHandling:=NullValueHandling.Include)> Public Property MyProperty As New List(of String)
Для этих свойств вы вообще не хотите, чтобы они отображались в JSON change : = NullValueHandling.Include to : = NullValueHandling.Ignore . Между прочим - я обнаружил, что вы можете отлично украсить свойство для сериализации XML и JSON (просто расположите их рядом друг с другом). Это дает мне возможность вызывать сериализатор XML в dotnet или сериализатор NewtonSoft по желанию - и работают бок о бок, и мои клиенты имеют возможность работать с XML или JSON. Это гладко, как сопли на дверной ручке, так как у меня есть клиенты, которым требуются оба!