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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top