개발관련/other

C# JavaScriptSerializer-Enum 형을 문자열로 JSON 직렬화 하는 방법

Rateye 2021. 12. 14. 14:02
728x90
반응형
질문 : JavaScriptSerializer-열거 형을 문자열로 JSON 직렬화

enum 속성을 포함하는 클래스가 있고 JavaScriptSerializer 사용하여 개체를 직렬화하면 string "name"이 아닌 열거 형의 정수 값이 포함됩니다. JavaScriptConverter 를 만들지 않고 내 json에서 string 로 열거 형을 얻는 방법이 있습니까? enum 정의 또는 개체 속성을 장식 할 수있는 속성이 있습니까?

예로서:

enum Gender { Male, Female }

class Person
{
    int Age { get; set; }
    Gender Gender { get; set; }
}

원하는 json 결과 :

{ "Age": 35, "Gender": "Male" }

기본 제공 .NET 프레임 워크 클래스로 답변을 찾는 것이 이상적이며, 가능하지 않은 경우 (Json.net과 같은) 대안을 환영합니다.

답변

사용할 수있는 특별한 속성이 없습니다. JavaScriptSerializer enums 을 문자열 표현이 아닌 숫자 값으로 직렬화합니다. enum 을 숫자 값 대신 이름으로 직렬화하려면 사용자 지정 직렬화를 사용해야합니다.

당신이 대신 JSON.Net 사용할 수있는 경우 JavaScriptSerializer 참조보다 이 질문에 대한 답변 에서 제공 OmerBakhari : JSON.net은 (속성을 통해이 유스 케이스 커버 [JsonConverter(typeof(StringEnumConverter))] 내장에 의해 처리되지 및 많은 다른 사람을) .net 시리얼 라이저.다음은 serializer의 기능을 비교하는 링크 입니다.

출처 : https://stackoverflow.com/questions/2441290/javascriptserializer-json-serialization-of-enum-as-string
728x90
반응형