Renommer le champ dans jsonserializer
-
19-09-2019 - |
Question
J'ai une bibliothèque de classe que j'ai besoin de publier via un jsonResult dans le framework ASP.NET MVC. (JsonResult utilise le jsonserializer pour produire sa sortie.)
J'ai découvert en lisant la documentation que si vous mettez [ScriptIgnore]
Sur une propriété / champ public, il ne sera pas sérialisé, un peu comme [XmlIgnore]
pour le sérialiseur XML.
J'ai besoin de la fonctionnalité équivalente de [XmlElement("elementname")]
, qui spécifie absolument le nom du champ / propriété dans la sérialisation de sortie. J'ai un champ appelé Elements
qui doit être sérialisé sur un champ nommé elements
.
Comment puis-je y parvenir en utilisant le jsonserializer par défaut?
Merci, David
La solution
Utilisez-vous le DatacontractjSonserializer classer?
Si c'est le cas ...
Ajoutez cet attribut Elements
champ
[DataMember(Name = "elements")]
Cette So Question suggère comment remplacer l'utilisation de jsonScriptSerializer à jSondatacontractSerializer.
La gentillesse,
Dan
Autres conseils
La réponse malheureuse est que vous ne pouvez pas le faire. Cela dit, je développe actuellement un module qui prolongera n'importe quel objet en produisant à l'exécution d'un objet anonyme qui suivra les règles des attributs, tels que Jsonignore ou JsonProperty. Je posterai plus quand j'aurai quelque chose.