FASTJSON v2
是FASTJSON
项目的重要升级,目标是为下一个十年提供一个高性能的JSON
库。通过同一套API
,
JSON/JSONB
两种协议,JsonPath 是一等公民。Java
服务端、客户端Android
、大数据场景。Kotlin
JSON Schema
Android
Graal Native-Image
在fastjson v2
中,groupId
和1.x
不一样,是com.alibaba.fastjson2
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.19</version>
</dependency>
可以在 maven.org 查看最新可用的版本。
Fastjson v1
兼容模块如果原来使用fastjson 1.2.x
版本,可以使用兼容包,兼容包不能保证100%兼容
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.19</version>
</dependency>
Fastjson Kotlin
集成模块如果项目使用Kotlin
,可以使用fastjson-kotlin
模块,使用方式上采用kotlin
的特性。
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2-kotlin</artifactId>
<version>2.0.19</version>
</dependency>
Fastjson Extension
扩展模块如果项目使用SpringFramework
等框架,可以使用fastjson-extension
模块,使用方式参考 SpringFramework Support。
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2-extension</artifactId>
<version>2.0.19</version>
</dependency>
在fastjson v2
中,package
和1.x
不一样,是com.alibaba.fastjson2
。如果你之前用的是fastjson1
,大多数情况直接更包名就即可。
@Test
public void test02(){
UserModel userModel = new UserModel();
userModel.setId(23L);
userModel.setUserName("张三");
System.out.println(JSON.toJSONString(userModel, JSONWriter.Feature.UseSingleQuotes));
//结果:{"id":23,'userName':'张三'}
}
class UserModel {
private Long id;
private String userName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
@Test
public void test01() {
//TODO 这块儿很奇特,对象转JSON 我填写了用单引号,但是ID属性还是输出的双引号
String json = "{\"id\":23,'userName':'张三'}";
UserModel userModel = JSON.parseObject(json, UserModel.class);
}
JSON
解析为JSONObject
@Test
public void test03(){
String json = "{\"id\":23,'userName':'张三'}";
JSONObject data = JSON.parseObject(json);
System.out.println(data.get("id"));
}
JSON
解析为JSONArray
String text = "...";
JSONArray data = JSON.parseArray(text);
JSONObject
、JSONArray
String text = "{\"id\": 2,\"name\": \"fastjson2\"}";
JSONObject obj = JSON.parseObject(text);
int id = obj.getIntValue("id");
String name = obj.getString("name");
String text = "[2, \"fastjson2\"]";
JSONArray array = JSON.parseArray(text);
int id = array.getIntValue(0);
String name = array.getString(1);
JSONArray array = ...
JSONObject obj = ...
User user = array.getObject(0, User.class);
User user = obj.getObject("key", User.class);
后续补充。。。。