Do sau trong C#:Serialize C# Enum Definition để Json
[Flags]
public enum MyFlags {
None = 0,
First = 1 << 0,
Second = 1 << 1,
Third = 1 << 2,
Fourth = 1 << 3
}
Có bất kỳ phương pháp hiện tại ServiceStack.Text
cho serializing để JSON sau đây?
{
"MyFlags": {
"None": 0,
"First": 1,
"Second": 2,
"Third": 4,
"Fourth": 8
}
}
Hiện tại tôi đang sử dụng thường trình bên dưới, có cách nào tốt hơn để thực hiện việc này không?
public static string ToJson(this Type type)
{
var stringBuilder = new StringBuilder();
Array values = Enum.GetValues(type);
stringBuilder.Append(string.Format(@"{{ ""{0}"": {{", type.Name));
foreach (Enum value in values)
{
stringBuilder.Append(
string.Format(
@"""{0}"": {1},",
Enum.GetName(typeof(Highlights), value),
Convert.ChangeType(value, value.GetTypeCode())));
}
stringBuilder.Remove(stringBuilder.Length - 1, 1);
stringBuilder.Append("}}");
return stringBuilder.ToString();
}
+1, mã đẹp. BTW: 's/typeof (Điểm nổi bật)/type/g' – Heinzi
@GavinFaux An enum không phải là một bộ sưu tập. Enums giống như các lớp với hằng số, do đó tôi không tìm thấy "hợp pháp" tuần tự hóa chúng như là các đối tượng hoặc mảng kết hợp. –
@ElYusubov: Tôi không đồng ý, kết quả mong muốn hoàn toàn khác với kết quả đầu ra trong câu hỏi được liên kết. – Heinzi