Ciao,
utilizzo un controlle che invia i dati, presi da un database, riempendo una classe. Al momento della serializzazione del Json vorrei eliminare tutti i valori empty\null\guid.empty.
Per esempio:
"Person" : {
"Surname" : "Surname",
"Name" : "Name",
"Sex" : "",
"BirthDate" : null,
"BirthPlace" : "BirthPlace",
"ID" : "00000000-0000-0000-0000-000000000000",
"IsEnabled": false
}
Vorrei che fosse:
"Person" : {
"Surname" : "Surname",
"Name" : "Name",
"BirthPlace" : "BirthPlace",
"IsEnabled": false
}
Nel WebApiConfig ho inserito la riga:
config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
che correttamente mi ignora i valori null (ma non gli empty).
Ho trovato che si potrebbe utilizzare
config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore };
che ignora tutti i valori di default. Purtroppo però ho visto che ignora i default anche dei bool e degli integer. Quindi mi ignorerebbe anche la mia "IsEnabled": false, che invece vorrei avere nel json.
Non conosco molto bene le impostazioni del WebApiConfig e quindi mi chiedevo se è possibile nella DefaultValueHandling.Ignore specificare solo i tipi che si vogliono ignorare o se c'è un altro metodo per farlo.
Grazie