转载自: https://blog.csdn.net/u011726984/article/details/79062355
json-util
json-util工具类整合了Jackson、Gson和Fastjson库并统一API。
使用环境
- JDK7+
- Maven
功能
统一调用API,形如toXXX
。目前支持的转换的列表:
- List
- Map
- JsonString
- Pojo
List支持泛型,JsonString支持指定日期格式化,支持对象和Map的互相转换。
支持从application.properties
或application.yml
中设置解析Json的库(jackson, gson, fastjson)。
application.properties:
json.class.type=jackson
- 1
application.yml:
json:
class-type: gson
- 1
- 2
支持自动查找用户引入的Json库(jackson, gson, fastjson)用来解析Json
使用
添加Maven依赖
jackson,gson,fastjson三者择一
<properties>
<jackson.version>2.9.0</jackson.version>
<gson.version>2.8.2</gson.version>
<fastjson.version>1.2.44</fastjson.version>
</properties>
<dependencies>
<dependency>
<groupId>io.github.yidasanqian</groupId>
<artifactId>json-util</artifactId>
<version>1.0.0</version>
</dependency>
<!-- use jackson lib-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- or use gson lib-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<!-- or use fastjson lib-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
</dependencies>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
例子
默认从application.properties
或application.yml
中读取配置的Json库,
若未配置则自动查找用户引入的Json库(jackson, gson, fastjson),若存在多个则默认使用Jackson作为json解析库。
解析到List
String json = "[1, 2, 4, 5]";
List result = JsonUtil.toList(json);
...
json = "[{"id": 1,"username": "yidasanqian"},{"id": 2,"username": "yidasanqian2"}]"
TypeReference<List<User>> typeReference = new TypeReference<List<User>>() {};
List<User> result = JsonUtil.toList(json, typeReference.getType());
- 1
- 2
- 3
- 4
- 5
- 6
- 7
解析到Map
String json = "{
"id": 1,
"username": "yidasanqian",
"address": {
"id": 1,
"city": "杭州"
}
}";
Map result = JsonUtil.toMap(json);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
解析到String
User user = new User();
user.setId(1);
user.setUsername("yidasanqian");
String result = JsonUtil.toJsonString(user);
- 1
- 2
- 3
- 4
解析到指定对象
String json = "{
"id": 1,
"username": "yidasanqian"
}";
User user = JsonUtil.toPojo(json, User.class);
- 1
- 2
- 3
- 4
- 5
Github地址:https://github.com/yidasanqian/json-util
码云地址:https://gitee.com/yidasanqian/json-util