JSON 속성을 값으로 직렬화
코드에서 JSON 표현을 활용할 때 속성을 값으로 직렬화하려는 상황이 발생할 수 있습니다. 물건보다는 가치. 이는 보다 간결하고 원하는 JSON 형식을 얻기 위한 것입니다.
Car 및 StringId 클래스와 관련된 다음 예를 고려해 보겠습니다.
class Car { public StringId Id { get; set; } public string Name { get; set; } } class StringId { public string Value { get; set; } } // Desired representation { "Id": "someId", "Name": "Ford" } // Default (undesired) representation { "Id" : { "Value": "someId" }, "Name": "Ford" }
원하는 JSON 표현은 Id 및 StringId에 대한 중첩 개체를 제거합니다. 해당 값을 직접 표시합니다. 이를 달성하기 위해 두 가지 접근 방식을 사용할 수 있습니다.
TypeConverter 사용
StringId에 대한 TypeConverter를 구현하면 JSON.NET은 자동으로 이를 사용하여 속성을 다음으로 변환합니다. 문자열:
[TypeConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : TypeConverter { // Implementation omitted for brevity... }
JsonConverter
이 접근 방식을 사용하려면 StringId 클래스에 특정 JSON.NET 속성을 추가해야 합니다.
[JsonConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : JsonConverter { // Implementation omitted for brevity... }
두 경우 모두 변환기가 값을 직접 읽고 쓰므로 결과는 다음과 같습니다. 원하는 JSON 표현:
{ "Id": "someId", "Name": "Ford" }
위 내용은 JSON 속성을 개체 대신 값으로 직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!