Mon problème est que je souhaite renvoyer les données JSON camelCased (par opposition à PascalCase standard) via ActionResult s à partir des méthodes de contrôleur ASP.NET MVC, sérialisées par JSON.NET .
À titre d'exemple, considérons la classe C # suivante:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Par défaut, lors du retour d'une instance de cette classe à partir d'un contrôleur MVC en tant que JSON, elle sera sérialisée de la manière suivante:
{
"FirstName": "Joe",
"LastName": "Public"
}
Je voudrais qu'il soit sérialisé (par JSON.NET) en tant que:
{
"firstName": "Joe",
"lastName": "Public"
}
Comment puis-je faire cela?
asp.net-mvc
json
json.net
camelcasing
aknuds1
la source
la source
Controller
méthode, vous devriez probablement utiliser unApiController
, auquel cas cette réponse fonctionne très bien.application/json
pastext/plain
.J'ai trouvé une excellente solution à ce problème sur le blog de Mats Karlsson . La solution consiste à écrire une sous-classe d'ActionResult qui sérialise les données via JSON.NET, en configurant ce dernier pour suivre la convention camelCase:
Utilisez ensuite cette classe comme suit dans votre méthode de contrôleur MVC:
la source
Pour WebAPI , consultez ce lien: http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx
Fondamentalement, ajoutez ce code à votre
Application_Start
:la source
Je pense que c'est la réponse simple que vous recherchez. C'est du blog de Shawn Wildermuth :
la source
Une alternative au filtre personnalisé consiste à créer une méthode d'extension pour sérialiser tout objet en JSON.
Appelez-le ensuite au retour de l'action du contrôleur.
la source
Plus simple, c'est mieux IMO!
Pourquoi tu ne fais pas ça?
Le contrôleur de classe de base simple
la source
Dans ASP.NET Core MVC.
la source
Vous trouverez ci-dessous une méthode d'action qui renvoie une chaîne json (cameCase) en sérialisant un tableau d'objets.
Notez que l'instance JsonSerializerSettings est passée en tant que deuxième paramètre. C'est ce qui fait que le camelCase se produit.
la source
J'ai aimé ça:
c'est une méthode d'extension simple dans le noyau MVC, cela va donner la capacité ToJson () à chaque objet de votre projet, à mon avis dans un projet MVC, la plupart des objets devraient avoir la capacité de devenir json, bien sûr, cela dépend :)
la source
Vous devez définir les paramètres dans le fichier 'Startup.cs'
Vous devez également le définir dans les valeurs par défaut de JsonConvert, c'est si vous souhaitez ultérieurement utiliser directement la bibliothèque pour sérialiser un objet.
la source
Si vous renvoyez ActionResult dans l'API Web .net core ou le résultat IHttpAction, vous pouvez simplement envelopper votre modèle dans une méthode Ok () qui correspondra à la casse sur votre frontal et le sérialisera pour vous. Pas besoin d'utiliser JsonConvert. :)
la source