«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как сериализовать перечисление .NET в струны json с JavascriptSerializer?

Как сериализовать перечисление .NET в струны json с JavascriptSerializer?

Опубликовано в 2025-04-12
Просматривать:401

How to Serialize a .NET Enum as a String in JSON using JavaScriptSerializer?

serialization .net enums как строки в json с JavascriptSerializer

]

стандартный .net javascriptserializer часто выводит перечисления в качестве их целочисленных значений в JSON. Чтобы сериализовать их как строки, представляющие их имена, существует несколько методов.

]

Метод 1: Использование json.net's stringenumConverter

]

самый простой и рекомендуемый подход использует мощный stringenumConverter . Этот преобразователь может быть применен либо на уровне определения перечисления, либо на уровне свойств:

]
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

[JsonConverter(typeof(StringEnumConverter))]
public enum Gender { Male, Female }

public class Person
{
    public int Age { get; set; }
    [JsonConverter(typeof(StringEnumConverter))] // Or apply at property level
    public Gender Gender { get; set; }
}

это обеспечивает свойство gender сериализуется как строка («мужчина» или «женщина») в полученном JSON.

Метод 2: Глобальные параметры конфигурации

для более широкого применения настройка stringenumConverter глобально:

]
    ]
  • ]

    на уровне перечисления: применить преобразователь к самому определению перечисления для последовательной сериализации строки во всех целях использования этого перечисления:

      [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }
    ]
  • ]
  • ]

    с jsonserializer : добавить преобразователь в конкретный jsonserializer экземпляр, чтобы повлиять только на то, что он сериализован по этому поводу:

    ]
      var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...
    ]
  • ]
  • ]

    с jsonConvert : применить преобразователь напрямую во время сериализации:

    ]
      string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());
    ]
  • ]
]

настройка stringenumConverter

]

stringenumConverter конструктор предлагает дополнительную настройку, позволяющую контролировать соглашения именования и обработку номеров. Обратитесь к документации JSON.NET для подробных параметров.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3