Sto serializzando oggetti e restituendo come json dal mio servizio web. Tuttavia, sto cercando di omettere proprietà null da serial json. C'è un modo per fare questo? Sto usando Web Api MVC 4 beta.Rimozione di proprietà Null da Json in MVC Web Api 4 Beta
risposta
L'API Web ASP.NET attualmente (there are plans per modificarlo per la versione finale per utilizzare Json.Net) utilizza DataContractJsonSerializer per impostazione predefinita per serializzare JSON.
Quindi è possibile controllare il processo di serializzazione con gli attributi DataContract/DataMember standard. Per saltare le proprietà nulle è possibile impostare EmitDefaultValue su false.
[DataContract]
public class MyObjet
{
[DataMember(EmitDefaultValue = false)]
public string Prop1 { get; set; }
[DataMember(EmitDefaultValue = false)]
public string Prop2 { get; set; }
}
Se si desidera avere un maggiore controllo su come le risposte JSON vengono serializzati è possibile utilizzare il pacchetto che contiene WebAPIContrib formattatori utilizzando Json.Net o il costruito nel JavaScriptSeralizer.
In Json.Net è possibile utilizzare JsonPropertyAttribute con NullValueHandling = NullValueHandling.Ignore. Sembra che qui non ci sia modo di farlo per l'intera classe, solo l'esplicita 'per ogni campo di classe/proprietà.
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string SometimesNull { get; set; }
FYI. C'è a reasons perché Json.Net serializza di default le proprietà con valori nulli. Dai un'occhiata, potrebbero essere alcuni dei motivi applicabili ai tuoi casi.
In realtà sto cercando di omettere. – kkocabiyik