Json.Net을 사용하여 PagedResult 직렬화
Json.Net은 IEnumerable을 구현하는 클래스를 배열로 처리합니다. [JsonObject]로 파생 클래스를 장식하면 목록을 생략하고 파생 클래스 멤버만 직렬화됩니다.
해결책 1: 목록 속성 노출
Konrad가 제안한 대로 목록을 노출하기 위한 파생 클래스의 공용 속성:
class PagedResult<T> : List<T> { public IEnumerable<T> Items { get { return this; } } }
해결책 2: 사용자 정의 JsonConverter
또는 사용자 정의 JsonConverter를 생성하여 전체 개체를 직렬화합니다.
class PagedResultConverter<T> : JsonConverter { // ... (implementation as provided in the answer) ... }
JsonSerializerSettings에 변환기를 추가합니다.
JsonSerializerSettings settings = new JsonSerializerSettings(); settings.Converters.Add(new PagedResultConverter<T>());
예시 사용법
다음은 변환기 사용을 보여주는 예입니다.
PagedResult<string> result = new PagedResult<string> { "foo", "bar", "baz" }; // ... (populate other properties) ... string json = JsonConvert.SerializeObject(result, settings);
출력:
{ "PageSize": 10, "PageIndex": 0, "TotalItems": 3, "TotalPages": 1, "Items": [ "foo", "bar", "baz" ] }
위 내용은 Json.Net을 사용하여 PagedResult 개체를 직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!