Serialisieren eines Containers von enums als String verwenden JSON.net
Können Sie serialisieren eines enum-Feld in einem WebAPI-Modell als ein string Attribut hinzufügen:
enum Size
{
Small,
Medium,
Large
}
class Example1
{
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
Size Size { get; set; }
}
Diese serialisieren, um dieses JSON:
{
"Size": "Medium"
}
Wie kann ich erreichen, dass das gleiche für Sammlungen von enums?
class Example2
{
IList<Size> Sizes { get; set; }
}
Ich serialisieren möchten, um dieses JSON:
{
"Sizes":
[
"Medium",
"Large"
]
}
InformationsquelleAutor Jon-Eric | 2013-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
JsonPropertyAttribute.ItemConverterType
Eigenschaft:Sizes
?Vielen Dank, stecken geblieben auf diese für einen Tag und eine Hälfte
InformationsquelleAutor Athari
Habe ich diese in den startup-code von meiner web-app zu serialise alle Enumerationen, strings (ich bevorzuge vorbei enum-Namen mit Werten, macht die Sache robuster).
Muss zugeben, ich habe nie versucht, es auf eine Liste der Enumerationen, obwohl ich weiß also nicht, was er tun würde, könnte einen Versuch Wert sein.
Ich kann bestätigen, das funktioniert für eine Liste der Enumerationen. Meine ideale Lösung wäre opt-in auf einem pro-Eigentums-basis, aber das funktioniert und es ist besser als nichts. Danke!
Athari ' s Lösung funktioniert auch und geben Ihnen die pro-Eigentums-opt-in, die Sie suchen.
es scheint nicht zu funktionieren für Dictionary<int,SomeEnum> obwohl :/
InformationsquelleAutor MarcE