사용자 지정 목록을 JSON C #으로 직렬화

파비안 웨 슬링

IEditableObject의 구현과 유사하게 변경 사항을 제어하고 필요한 경우 변경 사항을 되돌릴 수있는 사용자 지정 컬렉션이 있습니다.

public class CollectionBO<TEntity> : Collection<TEntity> where TEntity : BOBase
{
    public List<TEntity> AddedEntities { get; set; }
    public List<TEntity> RemovedEntities { get; set; }

   
    public CollectionBO()
    {
        AddedEntities = new List<TEntity>();
        RemovedEntities = new List<TEntity>();
    }

}

이 목록을 나머지 API의 DTO에서도 사용하여 쉽게 제거하거나 추가 할 레코드 정보에 액세스하고 싶지만 문제는 내부 목록 (AddedEntities, RemovedEntities)을 직렬화하지 않는다는 것입니다. 그들은 서버에 도착하고, 그 목록은 항상 비어 있으며, 질문은 목록과 심지어 그 IList 속성을 직렬화 할 수 있다는 것입니다.

 await (serverUrl).AppendPathSegment(endPoit)
                            .WithOAuthBearerToken(token)
                            .PutJsonAsync(CollectionBO);
데이비드 L

이 문제는 상속 구조와 원하는 출력 구조가 일치하지 않기 때문에 발생합니다.

에서 상속함으로써 Collection<T>Newtonsoft는 JsonArrayContract유형 구현으로 인해를 호출합니다 ICollection<>. 결과적으로 직렬화를 시도 할 때 배열을 출력합니다 "[]"..

즉, 객체 구조는 배열을 포함하는 객체입니다. serializer가 사용자 CollectionBO<TEntity>를 객체 로 취급하도록 강제 하려면 [JsonObject]속성을 사용하여 장식해야 합니다.

[JsonObject]
public class CollectionBO<TEntity> : System.Collections.ObjectModel.Collection<TEntity> 
    where TEntity : BOBase
{
      public List<TEntity> AddedEntities { get; set; }
      public List<TEntity> RemovedEntities { get; set; }


      public CollectionBO()
      {
            AddedEntities = new List<TEntity>();
            RemovedEntities = new List<TEntity>();
      }
}

이렇게하면 serializer가 올바르게 처리 할 수 ​​있습니다.

{"AddedEntities":[{"Id":1},{"Id":2}],"RemovedEntities":[{"Id":3},{"Id":4}],"Count":0}

주의 할 점은 Newtonsoft serializer를 사용한 동작과 같은 모든 종류의 이상한 동작을 만들 수 있으므로 컬렉션 유형을 확장하는 것은 거의 권장되지 않습니다. 또한 기본 개체가 있더라도 Count 속성은 0으로 직렬화됩니다. 확실히이 작업을 수행 할 수 있지만 컬렉션 유형을 확장 할 때 예상치 못한 동작이 계속 발생하지만 컬렉션으로 처리되지는 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

사용자 정의 객체 목록 JSON이 파이썬으로 직렬화

분류에서Dev

C # 목록으로 JSON 문자열 역 직렬화

분류에서Dev

Objective-C를 사용하여 JSON을 사용자 지정 개체로 역 직렬화

분류에서Dev

Newtonsoft.JSON을 사용하여 C #으로 Json 문자열 역 직렬화

분류에서Dev

C #의 JSON 배열을 목록으로 역 직렬화

분류에서Dev

JSON을 C # 개체 목록으로 역 직렬화

분류에서Dev

Jackson을 사용한 사용자 지정 JSON 직렬화 / 역 직렬화

분류에서Dev

json 문자열을 .NET 개체 목록으로 역 직렬화

분류에서Dev

Newtonsoft.Json 라이브러리를 사용하여 문자열을 C #을 사용하여 사용자 지정 개체로 역 직렬화하는 방법

분류에서Dev

JSON 목록을 C #의 개체 목록으로 역 직렬화 할 수 없음

분류에서Dev

직렬화 / 마샬링 패키지 수준 사용자 정의 레코드 유형을 JSON으로

분류에서Dev

json 문자열을 개체 C # .net으로 역 직렬화

분류에서Dev

C # 직렬화를 사용하여 매우 사용자 지정 형식으로 직렬화하는 방법

분류에서Dev

여러 가능한 형식으로 속성을 읽기위한 사용자 지정 JSON 직렬화 / 역 직렬화

분류에서Dev

사전으로 사용자 지정 JSON.net 역 직렬화 <string, string>

분류에서Dev

C #에서 중첩 된 목록으로 JSON 역 직렬화

분류에서Dev

JSON 개체를 .Net 목록으로 역 직렬화 (C #)

분류에서Dev

JsonConverter를 사용한 C #의 사용자 지정 JSON 역 직렬화

분류에서Dev

json 문자열을 일반 형식 목록으로 역 직렬화

분류에서Dev

C #을 사용하여 클래스로 JSON 역 직렬화

분류에서Dev

C #을 사용하여 JSON 직렬화

분류에서Dev

System.Text.Json 사용자 지정 직렬화 / 역 직렬화

분류에서Dev

동적 개체에 중첩 된 C # 목록의 첫 번째 항목과 마지막 항목을 JSON으로 직렬화

분류에서Dev

System.Text.Json을 사용한 사용자 지정 역 직렬화

분류에서Dev

목록 속성을 사용하여 JSON을 객체로 역 직렬화

분류에서Dev

C #에서는 간단한 JSON 개체를 정수 목록으로 역 직렬화합니다.

분류에서Dev

System.Runtime.Serialization.Json을 사용하여 JSON 배열을 목록으로 역 직렬화하는 방법

분류에서Dev

잭슨 / GSON의 직렬화 및 JSON으로 직렬화 자바 FX 등록

분류에서Dev

System.Text.Json을 사용하여 목록을 비동기 적으로 역 직렬화

Related 관련 기사

  1. 1

    사용자 정의 객체 목록 JSON이 파이썬으로 직렬화

  2. 2

    C # 목록으로 JSON 문자열 역 직렬화

  3. 3

    Objective-C를 사용하여 JSON을 사용자 지정 개체로 역 직렬화

  4. 4

    Newtonsoft.JSON을 사용하여 C #으로 Json 문자열 역 직렬화

  5. 5

    C #의 JSON 배열을 목록으로 역 직렬화

  6. 6

    JSON을 C # 개체 목록으로 역 직렬화

  7. 7

    Jackson을 사용한 사용자 지정 JSON 직렬화 / 역 직렬화

  8. 8

    json 문자열을 .NET 개체 목록으로 역 직렬화

  9. 9

    Newtonsoft.Json 라이브러리를 사용하여 문자열을 C #을 사용하여 사용자 지정 개체로 역 직렬화하는 방법

  10. 10

    JSON 목록을 C #의 개체 목록으로 역 직렬화 할 수 없음

  11. 11

    직렬화 / 마샬링 패키지 수준 사용자 정의 레코드 유형을 JSON으로

  12. 12

    json 문자열을 개체 C # .net으로 역 직렬화

  13. 13

    C # 직렬화를 사용하여 매우 사용자 지정 형식으로 직렬화하는 방법

  14. 14

    여러 가능한 형식으로 속성을 읽기위한 사용자 지정 JSON 직렬화 / 역 직렬화

  15. 15

    사전으로 사용자 지정 JSON.net 역 직렬화 <string, string>

  16. 16

    C #에서 중첩 된 목록으로 JSON 역 직렬화

  17. 17

    JSON 개체를 .Net 목록으로 역 직렬화 (C #)

  18. 18

    JsonConverter를 사용한 C #의 사용자 지정 JSON 역 직렬화

  19. 19

    json 문자열을 일반 형식 목록으로 역 직렬화

  20. 20

    C #을 사용하여 클래스로 JSON 역 직렬화

  21. 21

    C #을 사용하여 JSON 직렬화

  22. 22

    System.Text.Json 사용자 지정 직렬화 / 역 직렬화

  23. 23

    동적 개체에 중첩 된 C # 목록의 첫 번째 항목과 마지막 항목을 JSON으로 직렬화

  24. 24

    System.Text.Json을 사용한 사용자 지정 역 직렬화

  25. 25

    목록 속성을 사용하여 JSON을 객체로 역 직렬화

  26. 26

    C #에서는 간단한 JSON 개체를 정수 목록으로 역 직렬화합니다.

  27. 27

    System.Runtime.Serialization.Json을 사용하여 JSON 배열을 목록으로 역 직렬화하는 방법

  28. 28

    잭슨 / GSON의 직렬화 및 JSON으로 직렬화 자바 FX 등록

  29. 29

    System.Text.Json을 사용하여 목록을 비동기 적으로 역 직렬화

뜨겁다태그

보관