Fastjson 사용자 정의 직렬화


Fastjson 사용자 정의 직렬화

1. 소개

fastjson은 직렬화를 사용자 정의하는 다양한 방법을 지원합니다.

  • @JSONField를 통한 사용자 정의 직렬화
  • @JSONType을 통한 사용자 정의 직렬화
  • SerializeFilter를 통한 사용자 정의 직렬화
  • ParseProcess를 통한 사용자 정의 역직렬화

2 @JSONField 구성을 사용하세요

@JSONFi를 구성할 수 있습니다. field 필드 또는 getter/ 세터 메소드. 예:

 public class VO {
      @JSONField(name="ID")
      private int id;
 }

또는

 public class VO {
      private int id;

      @JSONField(name="ID")
      public int getId() { return id;}

      @JSONField(name="ID")
      public void setId(int value) {this.id = id;}
 }

자세한 내용은 JSONField

3을 참조하세요. @JSONType을 사용하여

을 구성하는 것은 JSONField와 유사하지만 JSONType은 필드나 getter/setter 메서드가 아닌 클래스에서 구성됩니다. .

4. SerializeFilter를 통한 맞춤형 직렬화

SerializeFilter를 통한 확장 프로그래밍을 사용하여 맞춤형 직렬화를 구현할 수 있습니다. fastjson은 다양한 SerializeFilter를 제공합니다.

  • PropertyPreFilter는 PropertyName을 기반으로 직렬화할지 여부를 결정합니다.
  • PropertyFilter는 PropertyName 및 PropertyValue를 기반으로 직렬화할지 여부를 결정합니다.
  • NameFilter는 키를 수정합니다. 키를 수정해야 하는 경우 반환 값을 처리합니다.
  • ValueFilter가 값을 수정할 수 있습니다.
  • BeforeFilter 직렬화할 때 앞에 콘텐츠를 추가하세요.
  • AfterFilter 직렬화할 때 끝에 콘텐츠를 추가하세요.
SerializeFilter filter = ...; // 可以是上面5个SerializeFilter的任意一种。
  JSON.toJSONString(obj, filter);

자세한 내용은 SerializeFilter

5를 참조하세요. 직렬화 해제 API 구문 분석 프로세스