常见的处理JSON字符串工具
处理 JSON 数据在 Java 中非常常见,市面上有很多流行的 JSON 处理库(依赖)可供选择。下面是一些常见的 JSON 库及其使用方法和特点:
⭐ 常见 JSON 处理库(依赖)
名称 |
Maven 依赖 |
特点 |
Jackson |
com.fasterxml.jackson.core:jackson-databind |
功能强大,Spring 默认支持 |
Gson |
com.google.code.gson:gson |
谷歌开发,轻量,使用简单 |
Fastjson |
com.alibaba:fastjson |
阿里出品,性能好,语法简洁 |
org.json |
org.json:json |
官方最基础的实现,适合简单场景 |
Json-B |
jakarta.json.bind:jakarta.json.bind-api |
Java EE 标准的 JSON-Binding |
Moshi |
com.squareup.moshi:moshi |
Square 出品,现代 Android 项目常用 |
JsonPath |
com.jayway.jsonpath:json-path |
类似 XPath 的 JSON 查询语法 |
🔧 各依赖使用方式示例(以 POJO 转 JSON、JSON 转 POJO 为例)
1. Jackson
Maven依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
使用方式:
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(object); // POJO -> JSON
MyClass obj = mapper.readValue(json, MyClass.class); // JSON -> POJO
2. Gson
Maven依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
使用方式:
Gson gson = new Gson();
String json = gson.toJson(object); // POJO -> JSON
MyClass obj = gson.fromJson(json, MyClass.class); // JSON -> POJO
3. Fastjson
Maven依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.44</version>
</dependency>
使用方式:
String json = JSON.toJSONString(object); // POJO -> JSON
MyClass obj = JSON.parseObject(json, MyClass.class); // JSON -> POJO
4. org.json
Maven依赖:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230618</version>
</dependency>
使用方式:
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Tom");
String json = jsonObject.toString(); // 构建 JSON 字符串
String name = new JSONObject(json).getString("name"); // 解析 JSON
5. Jakarta JSON-B(JSON Binding)
Maven依赖:
<dependency>
<groupId>jakarta.json.bind</groupId>
<artifactId>jakarta.json.bind-api</artifactId>
<version>3.0.0</version>
</dependency>
使用方式:
Jsonb jsonb = JsonbBuilder.create();
String json = jsonb.toJson(object); // POJO -> JSON
MyClass obj = jsonb.fromJson(json, MyClass.class); // JSON -> POJO
6. Moshi
Maven依赖:
<dependency>
<groupId>com.squareup.moshi</groupId>
<artifactId>moshi</artifactId>
<version>1.15.0</version>
</dependency>
使用方式:
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<MyClass> adapter = moshi.adapter(MyClass.class);
String json = adapter.toJson(object); // POJO -> JSON
MyClass obj = adapter.fromJson(json); // JSON -> POJO
7. JsonPath(用于 JSON 查询)
Maven依赖:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.8.0</version>
</dependency>
使用方式:
String name = JsonPath.read(jsonString, "$.store.book[0].author");
总结建议
使用场景 |
推荐库 |
通用强大、兼容 Spring |
Jackson |
轻量简单、适合工具类封装 |
Gson |
性能优先、国内主流项目 |
Fastjson |
需要标准化 JavaEE 支持 |
JSON-B |
简单快速处理 |
org.json |
Android 项目 |
Moshi |
JSON 查询与提取 |
JsonPath |