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

조슈아 프랭크

내 응용 프로그램은 다음과 같은 형식을 사용하여 생성 된 JSON 파일을 읽습니다.

{
  "myProperty": {complex JSON here}
}
class MyClass
{
   public MyChildClass MyProperty {get; set;}
}

클래스가 작동하는 방식을 변경하여 대신 다음과 같이 보이도록해야합니다.

class MyClass
{
   public MyNewChildClass MyNewProperty {get; set;}
}

이전 형식으로 만든 파일을 지원할 수 있어야하지만 새 형식을 사용하여 만든 파일도 지원해야합니다.

MyChildClass개체를 개체로 변환하는 코드가 MyNewChildClass있지만 개체가 이전 형식을 역 직렬화하고 속성 이름과 유형을에서 MyChildClass MyProperty변경하고 다음을 MyNewChildClass MyNewProperty사용하여 직렬화 및 역 직렬화 할 때 새 형식을 사용 하도록 직렬화를 설정하려면 어떻게해야합니까? 새 형식이 JSON 파일에 포함 된 경우?

Jawad

두 속성을 모두 사용하면 json이 새롭고 오래된 것 모두에서 작동합니다.

class MyClass
{
   [JsonPropert("myProperty")]
   public MyChildClass MyProperty {get; set;}

   [JsonProperty("myNewProperty")] // -> Remember, case matters.
   public MyNewChildClass MyNewProperty {get; set;}
}

클래스를 deserialize 할 때 null이 아닌지 확인하고 그 작업을 수행하십시오 (각각의 다른 방법). 이렇게하면 주요 변경 사항을 최소화하는 데 도움이됩니다.

BTW>. 새 코드를 이전 코드로 또는 그 반대로 변환하는 코드가있는 경우 이전 값이 null인지 확인한 다음 새 값을 이전 값으로 변환해야하는 해당 프로세스 / 메서드를 실행하고 객체를 계속 진행할 수 있습니다. 역 직렬화 이후 여야합니다.

var properties = JsonConvert.DeserializeObject<MyClass>("data");
if (properties.MyNewProperty == null) 
{
   properties = myMethodToConvertOldToNew(properties);
}

public MyClass myMethodToConvertOldToNew(MyClass)
{
  if (properties.New == null)
  {
     properties.New = ConversionMethod(properties.Old, properties.New);
     // dont have to, but,
     properties.Old = null;
  }
  return properties.

}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

Json.NET은 사용자 정의 getter 및 변경 불가능한 유형으로 속성을 역 직렬화하지 않습니다.

분류에서Dev

Rust로 가능한 여러 값으로 JSON 역 직렬화

분류에서Dev

Jackson의 다형성 직렬화 / 역 직렬화 및 사용자 지정 직렬화 / 역 직렬화

분류에서Dev

포함 된 형식을 사용한 역 직렬화 JSON

분류에서Dev

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

분류에서Dev

Jackson을 사용한 JSON 파일의 다형성 역 직렬화

분류에서Dev

사용자 지정 XmlSerialization을 사용하여 복잡한 개체 역 직렬화

분류에서Dev

Newtonsoft.Json을 사용한 열거 형 역 직렬화

분류에서Dev

하나의 클래스에서 가능한 여러 개체 이름으로 JSON 문자열 역 직렬화

분류에서Dev

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

분류에서Dev

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

분류에서Dev

NestJS가 복잡한 유형을 사용하여 @Query ()를 DTO로 역 직렬화

분류에서Dev

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

분류에서Dev

Rust : JSON 배열을 매우 간단한 사용자 정의 테이블로 역 직렬화

분류에서Dev

List <Bar>에 대한 Json 역 직렬화 내의 속성 설정자

분류에서Dev

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

분류에서Dev

JSON.net을 사용하여 동적으로 역 직렬화

분류에서Dev

Json.NET 역 직렬화 및 속성 설정 기 부작용

분류에서Dev

GSON을 사용하여 열거 형의 사용자 지정 역 직렬화

분류에서Dev

Jackson JSON을 사용하여 비대칭 직렬화 및 역 직렬화가 가능합니까?

분류에서Dev

GSON을 사용하여 평면화 된 JSON 키를 적절한 개체로 역 직렬화

분류에서Dev

Newtosoft Json을 사용하여 Json을 null로 역 직렬화

분류에서Dev

자바 다형성 Json 역 직렬화

분류에서Dev

Jackson을 사용하여 패턴으로 속성 역 직렬화

분류에서Dev

Spring JSON 역 직렬화 문자 제한

분류에서Dev

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

분류에서Dev

잘못된 JSON을 사용한 Spring MVC JSON 역 직렬화 (Jackson)

분류에서Dev

json.net으로 null 정규식 속성 역 직렬화

Related 관련 기사

  1. 1

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

  2. 2

    Json.NET은 사용자 정의 getter 및 변경 불가능한 유형으로 속성을 역 직렬화하지 않습니다.

  3. 3

    Rust로 가능한 여러 값으로 JSON 역 직렬화

  4. 4

    Jackson의 다형성 직렬화 / 역 직렬화 및 사용자 지정 직렬화 / 역 직렬화

  5. 5

    포함 된 형식을 사용한 역 직렬화 JSON

  6. 6

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

  7. 7

    Jackson을 사용한 JSON 파일의 다형성 역 직렬화

  8. 8

    사용자 지정 XmlSerialization을 사용하여 복잡한 개체 역 직렬화

  9. 9

    Newtonsoft.Json을 사용한 열거 형 역 직렬화

  10. 10

    하나의 클래스에서 가능한 여러 개체 이름으로 JSON 문자열 역 직렬화

  11. 11

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

  12. 12

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

  13. 13

    NestJS가 복잡한 유형을 사용하여 @Query ()를 DTO로 역 직렬화

  14. 14

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

  15. 15

    Rust : JSON 배열을 매우 간단한 사용자 정의 테이블로 역 직렬화

  16. 16

    List <Bar>에 대한 Json 역 직렬화 내의 속성 설정자

  17. 17

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

  18. 18

    JSON.net을 사용하여 동적으로 역 직렬화

  19. 19

    Json.NET 역 직렬화 및 속성 설정 기 부작용

  20. 20

    GSON을 사용하여 열거 형의 사용자 지정 역 직렬화

  21. 21

    Jackson JSON을 사용하여 비대칭 직렬화 및 역 직렬화가 가능합니까?

  22. 22

    GSON을 사용하여 평면화 된 JSON 키를 적절한 개체로 역 직렬화

  23. 23

    Newtosoft Json을 사용하여 Json을 null로 역 직렬화

  24. 24

    자바 다형성 Json 역 직렬화

  25. 25

    Jackson을 사용하여 패턴으로 속성 역 직렬화

  26. 26

    Spring JSON 역 직렬화 문자 제한

  27. 27

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

  28. 28

    잘못된 JSON을 사용한 Spring MVC JSON 역 직렬화 (Jackson)

  29. 29

    json.net으로 null 정규식 속성 역 직렬화

뜨겁다태그

보관