Fastjsonカスタムシリアル化


Fastjson カスタム シリアル化

1. はじめに

Fastjson は、シリアル化をカスタマイズする複数の方法をサポートしています。

    #@JSONField によるカスタマイズされたシリアル化
  • @JSONType によるカスタマイズされたシリアル化
  • SerializeFilter によるカスタマイズされたシリアル化
  • ParseProcess によるカスタマイズされた逆シリアル化

フィールドまたはゲッター/セッター メソッドで @JSONField を構成できます。例:

 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

と同様の設定を行いますJSONField に設定されますが、JSONType はフィールドまたはゲッター/セッター メソッドではなくクラスで構成されます。

SerializeFilter による拡張プログラミングを使用して、カスタマイズされたシリアル化を実装できます。 fastjson はさまざまな SerializeFilter を提供します。

    PropertyPreFilter は、PropertyName に基づいてシリアル化するかどうかを決定します。
  • PropertyFilter は、PropertyName と PropertyValue に基づいてシリアル化するかどうかを決定します。
  • NameFilter キーを変更します。 if キーを変更して戻り値を処理する必要がある場合は、
  • ValueFilter 値の変更
  • BeforeFilter シリアル化中に先頭にコンテンツを追加します
  • AfterFilter 末尾にコンテンツを追加しますシリアル化中
  • SerializeFilter filter = ...; // 可以是上面5个SerializeFilter的任意一种。
      JSON.toJSONString(obj, filter);
詳細はこちら: SerializeFilter

#カスタマイズされた逆シリアル化 API ParseProcess