2012-05-23 11 views
19

Attualmente sto lavorando con ASP.NET API web dove torno un oggetto di modello come segue dalla mia operazione REST:che gestiscono i nomi di proprietà restituiti nel JSON dal web api

prodotto con proprietà: Name, Id, Description, etc.....

Quando questo viene convertito in un oggetto JSON, lo stampa con i nomi delle proprietà sopra.

Per ridurre il payload restituito dall'operazione web api, esiste un modo per modificare le proprietà nell'oggetto JSON come ad esempio Desc per Description. Potrei cambiare l'oggetto Model ma i nomi delle proprietà non avrebbero senso allora!

risposta

2

Si potrebbe anche considerare l'utilizzo di http://automapper.org/ sul lato asp.net per mappare gli oggetti completi, a quelli più leggeri. Potrebbe essere eccessivo per solo uno o due piccoli oggetti, ma se si dispone di un mazzo per farlo può risparmiare un po 'di tempo (libero e open source per l'avvio).

23

Il modo semplice per farlo è attraverso un contratto di dati. Here is an article, ma fondamentalmente, comporta due annotazioni sul modello. Permette anche di ignorare tutto ciò che non vuoi serializzato.

[DataContract] 
public class Foo { //Your model class 

    [DataMember(Name="bar-none")] //This also allows you to use chars like '-' 
    public string bar {get; set;} 

    [IgnoreDataMember] //Don't serialize this one 
    public List<string> fuzz { get; set;} 

} 
+1

Questo è stato perfetto per i miei scopi, che erano gli stessi di OP. –

+4

Potrebbe anche essere necessario aggiungere un riferimento a System.Runtime.Serialization che non viene aggiunto per impostazione predefinita. http://stackoverflow.com/questions/7401795/namespace-for-datacontract – geon

Problemi correlati