사용자 지정 JsonConverter에서 기본 직렬화를 사용하는 방법
Json과 시리얼/디시리얼라이즈하는 복잡한 오브젝트 그래프가 있습니다.NET. 객체 중 일부는 추상 클래스에서 파생되므로 역직렬화가 제대로 작동하려면 커스텀을 만들어야 했습니다.JsonConverter유일한 역할은 탈직렬화 시 추상 클래스의 적절한 구체적인 구현을 선택하고 Json을 허용하는 것입니다.NET은 계속 진행됩니다.
연재를 하고 싶을 때 문제가 발생합니다.커스텀은 전혀 필요 없습니다.나는 내가 사용하는 것과 똑같은 행동을 하고 싶다.JsonConvert.SerializeObject단골손님없이JsonConverter.
단, 디시리얼라이제이션 요구를 위해 커스텀 JsonConverter 클래스를 사용하고 있기 때문에, 이 클래스는WriteJson실행.WriteJson은 추상적이기 때문에 그냥 전화할 수 없습니다.base.WriteJson하지만 나는 근본적으로 그것을 하고 싶다.그래서 궁금한 건 이 방법에 무엇을 넣으면 플레인 제인 디폴트 동작을 얻을 수 있을까?즉, 다음과 같습니다.
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
// What goes here to get default processing?
}
커스텀에서는 덮어쓰고 false를 반환합니다.
public override bool CanWrite { get { return false; } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
그럼 그냥 예외로 하면 되겠네요WriteJson안 부르니까.
(비직렬화 시 디폴트 동작을 얻으려면 덮어쓰기 후 되돌립니다.false.)
(Json에서 도입된)에도 동일한 접근방식을 사용할 수 있습니다.NET 11.0.1)의 서브클래스에 불과하기 때문에JsonConverter및 의 타입 세이프 버전을 도입하고 있습니다.
언급URL : https://stackoverflow.com/questions/29616596/how-to-use-default-serialization-in-a-custom-jsonconverter
'source' 카테고리의 다른 글
| 왜 파이썬의 yaml 시리얼라이제이션보다 json 시리얼라이제이션이 훨씬 빠를까요? (0) | 2023.03.16 |
|---|---|
| 치명적인 오류:WP에 게시물을 추가할 때 메모리 부족 (0) | 2023.03.16 |
| 한 페이지에 있는 총 시계 수를 어떻게 세나요? (0) | 2023.03.16 |
| Windows Azure의 경우:웹 역할, 작업자 역할 및 VM 역할이 무엇입니까? (0) | 2023.03.11 |
| 후크를 사용한 리액트 기능 컴포넌트와 클래스 컴포넌트 (0) | 2023.03.11 |