Fastjson FAQ


Fastjson FAQ list

1. fastjson の入手方法


fastjson は次の場所からダウンロードできます:

  • maven 中央リポジトリ: http://central.maven.org/maven2/com/alibaba/fastjson/
  • Sourceforge.net : https://sourceforge.net/projects/ fastjson /files/
  • Maven で fastjson の依存関係を構成する方法 最新バージョンの fastjson は Maven 中央ウェアハウスにリリースされ、これを直接利用できます。
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.21</version>
</dependency>

android バージョン

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.55.android</version>
</dependency>

2. fastjson の主な API は何ですか?

fastjson エントリ クラスは com.alibaba.fastjson.JSON、メイン API は JSON.toJSONString および parseObject です。

package com.alibaba.fastjson;
public abstract class JSON {
      public static final String toJSONString(Object object);
      public static final <T> T parseObject(String text, Class<T> clazz, Feature... features);
}


シリアル化:

String jsonString = JSON.toJSONString(obj);

逆シリアル化:

VO vo = JSON.parseObject("...", VO.class);

Pan 型の逆シリアル化:

#
import com.alibaba.fastjson.TypeReference;List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});

#3. fastjson の使用例の場所fastjson の使用例については、ここを参照してください: Samples-DataBind

4. fastjson のパフォーマンスはどのくらいですか? Fastjson は現在、Java 言語で最速の JSON ライブラリであり、最速であると主張する Jackson よりも高速です。ここでサードパーティの独立したテスト結果を確認してください: fastjson のパフォーマンスの比較。

ご自身で性能テストを行う場合は、循環リファレンス検出機能をオフにしてください。

JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect)VO vo = JSON.parseObject("...", VO.class, Feature.DisableCircularReferenceDetect)

ジャクソンの作者である Cowtowncoder らによる fastjson のパフォーマンス評価は次のとおりです: https://groups.google.com/forum/#!topic/java-serialization-benchmarking/8eS1KOquAhw

5. fastjson のパフォーマンスは gson と比較してどうですか? fastjson は gson よりも約 6 倍高速です。テスト結果は次のとおりです: パフォーマンス テストの比較。 gson の g は、タートルスピードの JSON ライブラリである「turtle」ピンインの略語である可能性があります。

6. fastjson は Android 上で実行できますか? fastjson には Android 用の特別なバージョンがあり、一般的ではない機能が削除されています。 jar が占めるバイト数は少なくなります。 git ブランチのアドレスは、https://github.com/alibaba/fastjson/tree/android です。

7. fastjson シリアル化には、json-lib のような Java Bean シリアル化の構成が必要ですか? いいえ、fastjson のシリアル化と逆シリアル化に特別な構成は必要ありません。唯一の要件は、シリアル化するクラスが Java Bean 仕様に準拠していることです。

#8. fastjson が日付を処理する方法

JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")

ISO-8601 日付形式を使用します
JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);

グローバル変更日形式
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);

逆シリアル化では、次の日付形式を自動的に認識できます:

  • ISO-8601 日付形式
  • yyyy-MM-dd
  • yyyy-MM-dd HH : mm:ss
  • yyyy-MM-dd HH:mm:ss.SSS
  • ミリ秒数値
  • ミリ秒数値文字列
  • .NET JSON 日付形式
  • 新しい日付(198293238)

9.シリアル化をカスタマイズするにはどうすればよいですか?

SimplePrePropertyFilter を使用してフィールドをフィルターできます。詳細については、こちらを参照してください: https://github.com/alibaba/fastjson/wiki/SimplePropertyPreFilter を使用してプロパティをフィルターする

カスタムの詳細については、シリアル化については、こちらを参照してください: Fastjson カスタム シリアル化

#10. オブジェクトに参照がある場合、シリアル化された結果はブラウザーでサポートされません。

SerializerFeature.DisableCircularReferenceDetect プロパティを使用して、参照の検出と生成をオフにします。例:

String  jsonString = JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect);

11. IE 6 は中国語の文字列を含む JSON をサポートしていません。

fastjson は BrowserSupport 構成を提供します。これを開くと、すべての中国語が \uXXXX 形式にシリアル化されます。バイト数は多くなりますが、IE 6 と互換性があります。

String  jsonString = JSON.toJSONString(obj, SerializerFeature.BrowserCompatible);

12. fastjson が大きすぎるオブジェクトと大きすぎる JSON テキストを処理する方法

fastjson は Stream API を提供します。詳細については、ここを参照してください Fastjson Stream api

13. @JSONField を使用してシリアル化をカスタマイズする

fastjson は Annotation を使用してシリアル化と逆シリアル化をカスタマイズする機能を提供します。 Fastjson JSONフィールド