Feld in JsonSerializer umbenennen
-
19-09-2019 - |
Frage
Ich habe eine Klassenbibliothek, die ich über ein JsonResult im ASP.NET MVC -Framework ausgeben muss. (JsonResult verwendet den JsonSerializer, um seine Ausgabe zu erzeugen.)
Ich habe durch das Lesen der Dokumentation entdeckt, dass wenn Sie einsetzen [ScriptIgnore]
Auf einem öffentlichen Grundstück/auf einem Bereich wird es nicht serialisiert, ähnlich wie [XmlIgnore]
Für den XML -Serializer.
Ich brauche die äquivalente Funktionalität von [XmlElement("elementname")]
, was absolut den Namen des Feldes/die Eigenschaft in der Ausgabeserialisierung festlegt. Ich habe ein Feld namens Elements
Das muss auf ein Feld namens serialisiert werden elements
.
Wie kann ich dies mit dem Standard -JsonSerializer erreichen?
Danke, David
Lösung
Verwenden Sie die DataContractJsonSerializer Klasse?
Wenn ja ...
Fügen Sie Ihnen dieses Attribut hinzu Elements
aufstellen
[DataMember(Name = "elements")]
Dies Also Frage schlägt vor, wie Sie die Verwendung von JSOsScriptSerializer an JSondatacontractSerializer überschreiben.
Freundlichkeit,
Dan
Andere Tipps
Die unglückliche Antwort ist, dass Sie es nicht tun können. Trotzdem entwickle ich derzeit ein Modul, das jedes Objekt erweitert, indem ich zur Laufzeit ein anonymer Objekt erzeugt, das Regeln aus Attributen wie JSONIGNORE oder JSONPROPERTY befolgt. Ich werde mehr posten, wenn ich etwas habe.