Я пытаюсь сериализовать объект, используя Newtonsoft Json.Net.Newtonsoft Json.Net serialize JObject не игнорирует нули, даже с правильными настройками
Этот объект является анонимным типом, заполненным множеством гетерогенных вещей, главным образом регулярными POCOs, а также некоторыми JObject
s или JArray
s.
Дело в том, что при добавлении свойства NullValueHandling
к NullValueHandling.Ignore
каждое свойство null игнорируется, но только если оно является частью «обычного» .Net-объекта. Каждое свойство null внутри JObject
или JArray
остается.
Вот минимальный пример:
var jobj = JObject.FromObject(new Anything{
x = 1,
y = "bla",
z = null
});
var poco = new Foo {
foo1 = "bar",
foo2 = null
};
var serialized = JsonConvert.SerializeObject(new {
source1 = poco,
source2 = jobj
}, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore});
Есть простой способ игнорировать эти нулевые значения, а? Я пропустил какой-то параметр настройки? Или мне нужно иметь дело с ним вручную?
Это действительно поможет, если вы могли бы дать краткую, но полную программу, демонстрирующую проблему. –
Пропущенная «нулевая» запись массива изменит индексы; в этом случае вам нужно иметь дело с ним вручную. –
Этот код не может скомпилировать, потому что 1) нет типа Foo (нет, это не nitpicking, потому что проблема может потенциально быть в определении этого типа каким-то образом) и 2) вы не можете назначить нулевой литерал свойство анонимного типа. – erikkallen