"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScriptTerializer를 사용하여 .NET 열거를 JSON 스트링으로 직렬화하는 방법은 무엇입니까?

JavaScriptTerializer를 사용하여 .NET 열거를 JSON 스트링으로 직렬화하는 방법은 무엇입니까?

2025-04-12에 게시되었습니다
검색:794

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

. 표준 .NET javascriptSerializer

는 종종 JSON 내에서 정수 값으로 열거를 출력합니다. 이름을 나타내는 문자열로 직렬화하려면 몇 가지 방법이 존재합니다.

메소드 1 : json.net의

stringenumconverter

가장 간단하고 권장되는 접근 방식은 json.net의 강력한 stringenumconverter

를 사용합니다. 이 변환기는 열거 정의 레벨 또는 속성 레벨에서 적용 할 수 있습니다.

newtonsoft.json을 사용하여; newtonsoft.json.converters 사용; [JSONCONVERTER (typeof (stringenumConverter))] 공개 열거 젠더 {남성, 여성} 공공 계급 사람 { 공개 int 연령 {get; 세트; } [JSONCONVERTER (typeof (stringEnumConverter))] // 또는 속성 레벨에서 신청합니다 공공 성별 성별 {get; 세트; } }

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; }
}
속성이 결과 JSON에서 문자열 ( "male"또는 "female")으로 직렬화됩니다.

메소드 2 : 글로벌 구성 옵션

더 넓은 응용 프로그램의 경우 stringenumconverter

전역에서 :

를 구성하십시오.

    [JSONCONVERTER (typeof (stringEnumConverter))] 공개 열거 젠더 {남성, 여성}
  •   [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }
    컨버터를 특정
  • jsonserializer
  • 인스턴스에 추가하여 해당 인스턴스에 의해 시리얼 된 열거에만 영향을 미칩니다.

    var serializer = new Jsonserializer (); Serializer.converters.add (new StringenumConverter ()); // ... Serializer를 사용하여 객체를 직렬화합니다 ...

      var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...
    직렬화 중에 변환기를 직접 적용합니다 :
  • stringenumconverter 생성자는 추가 사용자 정의를 제공하여 명명 규칙 및 번호 처리를 제어 할 수 있습니다. 자세한 옵션은 JSON.NET 문서를 참조하십시오.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3