java json库之JsonLib、Gson、Jackson、FastJson

以前はJson-libライブラリによってピットインされており、解析が遅すぎました。FastJsonライブラリに切り替えた後、パフォーマンスは質的に飛躍しました。これを使用して、さまざまなjsonライブラリを整理します

1つ、Json-libライブラリ

最も古く、最も広く使用されているが、パフォーマンスが最も悪いjsonライブラリ。お勧めしません!

依存関係を追加します。

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>

 指示:

  1. Javaオブジェクト(リスト、マップを含む)をjson文字列に変換します: String jsonStr = JSONObject.fromObject(bean).toString()
  2. json文字列をJavaオブジェクトに変換します: Bean bean =(Bean)JSONObject.toBean(JSONObject.fromObject(jsonStr)、Bean.class)

2、Gsonライブラリ

Googleが作成した最も完全なjsonパーサー

依存する必要があります:

		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.8.6</version>
		</dependency>

指示:

  1. Javaオブジェクト(リスト、マップを含む)をjson文字列に変換します。StringjsonStr= new Gson()。toJson(bean);
  2. json文字列をJavaオブジェクトに変換します: Bean bean = new Gson()。fromJson(jsonStr、Bean.class)
  3. json文字列変換リスト対象: List <Bean> beanList = new Gson()。fromJson(jsonStr、new TypeToken <List <Bean >>(){}。getType());
  4. json字符串変換マップ対象: Map <String、String> map = new Gson()。fromJson(str、new TypeToken <HashMap <String、String >>(){}。getType());

 

3、Jacksonライブラリ(springbootプロジェクトは直接使用でき、パッケージを引用する必要はありません)

最も人気のあるjsonライブラリ。springMVCのデフォルトのjsonライブラリはjacksonです。

依存する必要があります:

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.10.1</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.10.1</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.10.1</version>
		</dependency>

指示:

  1. Javaオブジェクト(リスト、マップを含む)をjson文字列に変換します。StringjsonStr= new ObjectMapper()。writeValueAsString(bean);
  2. json文字列をJavaオブジェクトに変換します: Bean bean = new ObjectMapper()。readValue(jsonStr、Bean.class)
  3. オブジェクトを一覧表示するjson文字列: List <Bean> beanList = new ObjectMapper()。readValue(jsonStr、new TypeReference <ArrayList <Bean >>(){}); // TypeReference匿名内部クラス、オブジェクトタイプを示します
  4. json字符串変換マップ対象: Map <String、String> map = new ObjectMapper()。readValue(jsonStr、new TypeReference <HashMap <String、String >>(){});

4、FastJsonライブラリ(推奨)

Aliによって作成されたjsonライブラリは、非常に高速な解析速度を備えています。ただし、脆弱性は公開されています。最新バージョンを使用してください。

依存関係を追加します。

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.62</version>			
</dependency>	

指示:

  1. Javaオブジェクト(リスト、マップを含む)をjson文字列に変換します。StringjsonStr= JSON.toJSONString(bean);
  2. json文字列をJavaオブジェクトに変換します: Bean bean = JSONObject.parseObject(jsonStr、Bean.class)
  3. json文字列をリストオブジェクトに変換します。List<Bean> beanList = JSONObject.parseArray(jsonStr、Bean.class);
  4. json文字列をマップオブジェクトに変換します: Map <String、String> map = JSONObject.parse(jsonStr);

 

5、jsonライブラリの比較

書く時間がないので、ネットマップを借りて各jsonライブラリのパフォーマンスを比較します

シリアル化のパフォーマンスは次のとおりです。

デシリアライズのパフォーマンスは次のとおりです。

要約すれば:

データ量が少ない場合:Gsonは高速です

データ量が多い場合:FastJsonは高速です

データ量に関係なく:ジャクソンが最も安定しています

ランキング:

FastJson> Jackson> Gson> Json-lib

 

時間があるときにもう一度テストしてください

 

おすすめ

転載: blog.csdn.net/sumengnan/article/details/112851181