93 votes

Les propriétés JSON maintenant en minuscule lors du basculement d'ASP .Net Core 1.0.0-rc2-final à 1.0.0

J'ai juste troqué notre projet à partir d'ASP .Net de Base 1.0.0-rc2-finale 1.0.0. Notre site web et le client ont cessé de travailler en raison de la capitalisation de JSON propriétés. Par exemple, cette ligne de JavaScript maintenant échoue

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

parce que le contrôleur appelle maintenant le tableau "éléments" au lieu de "les Éléments". Je n'ai pas modifié au-delà de l'installation de la mise à jour des paquets et de la modification du projet.fichier json. Je n'ai pas changé le modèle C# les fichiers qui continuent de tirer parti de leurs propriétés.

Pourquoi les ASP.Net de Base des contrôleurs ont commencé à rentrer en JSON avec écrit en minuscule propriétés? Comment puis-je revenir à eux d'honorer le cas de la propriété des noms à partir du modèle?

160voto

Sasha Fencyk Points 745

MVC sérialise maintenant JSON avec les noms de cas de chameaux par défaut

Utilisez ce code pour éviter les noms de cas de chameaux par défaut

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

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

19voto

Joe Audette Points 15293

voir l'annonce à ce sujet ici https://github.com/aspnet/Announcements/issues/194

vous pouvez changer le comportement comme ceci:

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

1voto

Abdul Rehman Sayed Points 4123

Pour ceux qui utilisent ASP.net WEB API (plutôt que ASP.NET Core).

Ajoutez cette ligne à votre WebApiConfig.

 //Comment this jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

jsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
 

En ajoutant ceci comme une réponse ici parce que cela vient en premier dans la recherche Google pour l'API Web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X