Enum-Serialisierung Json vs XML
Habe ich folgenden Enum in meinem Projekt
public enum CameraAccessMethod
{
Manual = 0,
Panasonic = 1,
Axis = 2,
AirCam = 3
}
Ich habe ein Objekt, das serialisiert wird entweder json oder XML je nach verschiedenen Szenarien und einer Objekt-Eigenschaft ist vom Typ CameraAccessMethod
. Das problem, das ich habe, ist, dass, wenn diese Eigenschaft wird in XML serialisiert wird es geben, string-Darstellung der enum-Werte (Manual, Panasonic,Achse,Aircam), aber in der JSON-Serialisierung zu Anzahl Werte (0,1,2,3). Wie kann ich vermeiden, dass diese Inkonsistenz? ich möchte strings in JSON-Serialisierung als gut.
- Wie machst du die JSON-Serialisierung? Je nachdem, welche serializer, die Sie verwenden, es kann oder kann nicht haben eine option zum serialisieren von enum-Werte als Zeichenfolgen.
- Ich bin mit Standard-serializer, Schiffe mit asp.net web-api beta
- mögliche Duplikate von JSON-Serialisierung in c# enum als string
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Web-API-RC erhalten Sie die string-Darstellungen von Enumerationen, die durch die Anwendung einer
StringEnumConvert
zu den bestehendenJsonMediaTypeFormatter
Konverter-Sammlung währendApplication_Start()
:;
am Ende von Zeile 1Erreichen Sie dies leichter, wenn Sie mit dem Schalter einen Formatierer, basierend auf Json.NET (das Schiff aus der box mit den nächsten Tropfen ASP.NET Web-API). Sehen Sie diesen SO-post für weitere details:
Wie zu sagen, Json.Net weltweit gelten die StringEnumConverter alle enums
Verwenden
JsonMediaTypeFormatter
undenumConverter
beide können wir folgenden code verwenden.//code start hier