FastJson是阿里开源的JSON解析库,它可以解析JSON格式的字符串,支持将JAVA Bean序列化JSON字符串,也可以从JSON字符串反序列化到JavaBean。相比其他JSON库而言,FastJson的性能还是不错的,目前在日常开发中使用也非常广泛,且上手也非常简单,支持的功能也非常完备,比如支持泛型、支持流处理超大文本、支持枚举、支持序列化和反序列化扩展。
前戏很重要!-
引入FastJson依赖
com.alibaba fastjson 1.2.78 -
创建User类
// lombok @Data public class User { private Long id; private String username; private String password; private Integer sex; private Integer age; private String autograph; private Integer status; private Date updateTime; private Date createTime; }
- 造点数据
package cn.msjava.coding;
import cn.msjava.coding.eneity.User;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Main {
public static void main(String[] args) {
User user = new User();
user.setId(1L);
user.setUsername("admin");
user.setPassword("admin");
user.setSex(1);
user.setAge(18);
user.setAutograph("风往哪儿吹,不要问跟风的人~");
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
String userJson = JSON.toJSONString(user);
System.out.println(userJson);
}
}
- 转换结果
{
"age": 18,
"autograph": "风往哪儿吹,不要问跟风的人~",
"createTime": 1641135506750,
"id": 1,
"password": "admin",
"sex": 1,
"updateTime": 1641135506750,
"username": "admin"
}
2. List集合转Json
- 造点数据
package cn.msjava.coding;
import cn.msjava.coding.eneity.User;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Main {
public static void main(String[] args) {
User user = new User();
user.setId(1L);
user.setUsername("admin");
user.setPassword("admin");
user.setSex(1);
user.setAge(18);
user.setAutograph("风往哪儿吹,不要问跟风的人~");
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
User user1 = new User();
user1.setId(1L);
user1.setUsername("admin1");
user1.setPassword("admin1");
user1.setSex(0);
user1.setAge(18);
user1.setAutograph("祖国必然统一~");
user1.setCreateTime(new Date());
user1.setUpdateTime(new Date());
List userList = new ArrayList();
userList.add(user);
userList.add(user1);
String userListJson = JSON.toJSONString(userList);
System.out.println(userListJson);
}
}
- 转换结果
[
{
"age": 18,
"autograph": "风往哪儿吹,不要问跟风的人~",
"createTime": 1641135971494,
"id": 1,
"password": "admin",
"sex": 1,
"updateTime": 1641135971494,
"username": "admin"
},
{
"age": 18,
"autograph": "祖国必然统一~",
"createTime": 1641135971494,
"id": 1,
"password": "admin1",
"sex": 0,
"updateTime": 1641135971494,
"username": "admin1"
}]
3. Map集合转Json
- 造点数据
package cn.msjava.coding;
import cn.msjava.coding.eneity.User;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class Main {
public static void main(String[] args) {
User user = new User();
user.setId(1L);
user.setUsername("admin");
user.setPassword("admin");
user.setSex(1);
user.setAge(18);
user.setAutograph("风往哪儿吹,不要问跟风的人~");
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
User user1 = new User();
user1.setId(1L);
user1.setUsername("admin1");
user1.setPassword("admin1");
user1.setSex(0);
user1.setAge(18);
user1.setAutograph("祖国必然统一~");
user1.setCreateTime(new Date());
user1.setUpdateTime(new Date());
HashMap userMap = new HashMap();
userMap.put("user",user);
userMap.put("user1",user1);
String userMapJson = JSON.toJSONString(userMap);
System.out.println(userMapJson);
}
}
- 转换结果
{
"user1": {
"age": 18,
"autograph": "祖国必然统一~",
"createTime": 1641173214065,
"id": 1,
"password": "admin1",
"sex": 0,
"updateTime": 1641173214065,
"username": "admin1"
},
"user": {
"age": 18,
"autograph": "风往哪儿吹,不要问跟风的人~",
"createTime": 1641173214065,
"id": 1,
"password": "admin",
"sex": 1,
"updateTime": 1641173214065,
"username": "admin"
}
}
4. Json转Java对象
- 造点数据
package cn.msjava.coding;
import cn.msjava.coding.eneity.User;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class Main {
public static void main(String[] args) {
String userJson="{n" +
"t"age": 18,n" +
"t"autograph": "风往哪儿吹,不要问跟风的人~",n" +
"t"createTime": 1641135506750,n" +
"t"id": 1,n" +
"t"password": "admin",n" +
"t"sex": 1,n" +
"t"updateTime": 1641135506750,n" +
"t"username": "admin"n" +
"}";
User user = JSON.parseObject(userJson, User.class);
System.out.println(user.toString());
}
}
- 转换结果
User(id=1, username=admin, password=admin, sex=1, age=18, autograph=风往哪儿吹,不要问跟风的人~, status=null, updateTime=Sun Jan 02 22:58:26 CST 2022, createTime=Sun Jan 02 22:58:26 CST 2022)5. Json转List集合
- 造点数据
package cn.msjava.coding;
import cn.msjava.coding.eneity.User;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class Main {
public static void main(String[] args) {
String userListJson="[n" +
" {n" +
"t"age": 18,n" +
"t"autograph": "风往哪儿吹,不要问跟风的人~",n" +
"t"createTime": 1641135971494,n" +
"t"id": 1,n" +
"t"password": "admin",n" +
"t"sex": 1,n" +
"t"updateTime": 1641135971494,n" +
"t"username": "admin"n" +
" },n" +
" {n" +
"t"age": 18,n" +
"t"autograph": "祖国必然统一~",n" +
"t"createTime": 1641135971494,n" +
"t"id": 1,n" +
"t"password": "admin1",n" +
"t"sex": 0,n" +
"t"updateTime": 1641135971494,n" +
"t"username": "admin1"n" +
"}]";
List userList = JSON.parseArray(userListJson, User.class);
userList.forEach(x->{
System.out.println(x);
});
}
}
- 转换结果
User(id=1, username=admin, password=admin, sex=1, age=18, autograph=风往哪儿吹,不要问跟风的人~, status=null, updateTime=Sun Jan 02 23:06:11 CST 2022, createTime=Sun Jan 02 23:06:11 CST 2022) User(id=1, username=admin1, password=admin1, sex=0, age=18, autograph=祖国必然统一~, status=null, updateTime=Sun Jan 02 23:06:11 CST 2022, createTime=Sun Jan 02 23:06:11 CST 2022)6. Json转Map集合
- 造点数据
package cn.msjava.coding;
import cn.msjava.coding.eneity.User;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
public class Main {
public static void main(String[] args) {
String userJson = "{n" +
"t"user1": {n" +
"tt"age": 18,n" +
"tt"autograph": "祖国必然统一~",n" +
"tt"createTime": 1641173214065,n" +
"tt"id": 1,n" +
"tt"password": "admin1",n" +
"tt"sex": 0,n" +
"tt"updateTime": 1641173214065,n" +
"tt"username": "admin1"n" +
"t},n" +
"t"user": {n" +
"tt"age": 18,n" +
"tt"autograph": "风往哪儿吹,不要问跟风的人~",n" +
"tt"createTime": 1641173214065,n" +
"tt"id": 1,n" +
"tt"password": "admin",n" +
"tt"sex": 1,n" +
"tt"updateTime": 1641173214065,n" +
"tt"username": "admin"n" +
"t}n" +
"}";
Map userMap = (Map)JSONObject.parse(userJson);
for (Map.Entry entry: userMap.entrySet()){
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
}
- 转换结果
user1
{"password":"admin1","createTime":1641173214065,"sex":0,"autograph":"祖国必然统一~","updateTime":1641173214065,"id":1,"age":18,"username":"admin1"}
user
{"password":"admin","createTime":1641173214065,"sex":1,"autograph":"风往哪儿吹,不要问跟风的人~","updateTime":1641173214065,"id":1,"age":18,"username":"admin"}



