Sto provando a serializzare un oggetto usando Newtonsoft Json.Net.Newtonsoft Json.Net serializza JObject non ignora i valori nulli, anche con le giuste impostazioni
Questo oggetto è un tipo anonimo pieno di molte cose eterogenee, principalmente POCO regolari, ma anche alcuni JObject
s o JArray
s.
Il fatto è che quando si aggiunge la proprietà NullValueHandling
a NullValueHandling.Ignore
, ogni proprietà nullo viene ignorata, ma solo se fa parte di un oggetto "normale" .Net. Ogni proprietà null all'interno di JObject
o JArray
rimane.
Ecco un esempio minimo:
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});
C'è un modo semplice per ignorare quei valori nulli come bene? Ho perso qualche opzione di impostazione? O devo affrontarlo manualmente?
Sarebbe di grande aiuto se si potesse fornire un programma breve ma completo che dimostra il problema. –
Una voce 'null' saltata di un array cambierebbe gli indici; in questo caso è necessario gestirlo manualmente. –
Questo codice non può essere compilato perché 1) non esiste il tipo Foo (no, questo non è nitpicking perché il problema potrebbe potenzialmente essere nella definizione di quel tipo in qualche modo), e 2) Non è possibile assegnare il letterale null a un proprietà di tipo anonimo. – erikkallen