2016-07-05 54 views
24

Ho appena scambiato il nostro progetto da ASP .Net Core 1.0.0-rc2-final a 1.0.0. Il nostro sito Web e il nostro cliente hanno smesso di funzionare a causa della capitalizzazione delle proprietà JSON. Ad esempio, questa riga di JavaScript non riesce oraLe proprietà JSON ora sono minuscole nello scambio da ASP .Net Core 1.0.0-rc2-final a 1.0.0

for (var i = 0; i < collection.Items.length; i++){ 

perché il controller ora chiama l'array "items" anziché "Items". Non ho apportato modifiche oltre all'installazione dei pacchetti aggiornati e alla modifica del file project.json. Non ho modificato i file di modello C# che ancora capitalizzano le loro proprietà.

Perché i controller ASP.Net Core hanno iniziato a restituire JSON con le proprietà con alloggiamento inferiore? Come posso tornare da loro onorando il caso dei nomi delle proprietà dal modello?

+0

vedere https://github.com/aspnet/Announcements/issues/194 –

risposta

49

MVC ora serializza JSON con i nomi in cammello per default

Usa questo codice per evitare di cammello nomi di case per impostazione predefinita

services.AddMvc() 
     .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); 

fonte: https://github.com/aspnet/Announcements/issues/194

+0

netcore2: utilizzando Newtonsoft.Json.Serialization; –

4

vedere l'annuncio su questo qui https://github.com/aspnet/Announcements/issues/194

è possibile modificare il comportamento in questo modo:

services 
    .AddMvc() 
    .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());