Fastjson和对象互相转换

本文介绍了阿里巴巴Fastjson库的使用方法,包括Java对象与JSON字符串之间的序列化和反序列化操作,以及如何将List和Map类型的数据转换为JSON格式。

阿里巴巴Fastjson是一个Java语言编写的JSON处理器。

一、准备工作:

1.新建 class User

package com.sonya;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class User{
    private String name;
    private String password;
    private String remark;
 
    // 构造方法
    public User(String name, String password, String remark) {
        this.name = name;
        this.password = password;
        this.remark = remark;
    }
}

2.模拟数据:

// 新建对象
User u1 = new User("Sonya","12345","@@@ ? 、| /d  、t  我是小小糖");
User u2 = new User("Aynos","54321","@@@ ? 、| /ddff 你是不是傻呀 ");
// 新建集合
List<User> userList = new ArrayList<>();
userList.add(u1);
userList.add(u2);

二、序列化和反序列化

1.Java对象转Json字符串

方法:JSON.toJSONString()
代码:
System.out.println("~~~~~~~~~~~ 1.Java对象 转 Json字符串 ~~~~~~~~~~~");
String ju = JSON.toJSONString(u1);
System.out.println(ju);
输出:
~~~~~~~~~~~ 1.Java对象 转 Json字符串 ~~~~~~~~~~~
{"name":"Sonya","password":"12345","remark":"@@@ ? 、| /d  、t  我是小小糖"}

2.List对象转Json字符串

方法:JSON.toJSONString()
代码:
System.out.println("~~~~~~~~~~~ 2.List对象 转 Json字符串 ~~~~~~~~~~~");
String jlist = JSON.toJSONString(userList);
System.out.println(jlist);
输出:
~~~~~~~~~~~ 2.List对象 转 Json字符串 ~~~~~~~~~~~
[{"name":"Sonya","password":"12345","remark":"@@@ ? 、| /d  、t  我是小小糖"},{"name":"Aynos","password":"54321","remark":"@@@ ? 、| /ddff 你是不是傻呀 "}]

3.Json字符串转Json对象

方法:JSON.parseObject()
代码:
System.out.println("~~~~~~~~~~~ 3.Json字符串 转 Json对象 ~~~~~~~~~~~");
String jsonStr = "{\"password\":\"1234\",\"name\":\"Sonya\"}";
JSONObject jo = JSON.parseObject(jsonStr);
System.out.println("获取名称:"+jo.get("name"));
输出:
~~~~~~~~~~~ 3.Json字符串 转 Json对象 ~~~~~~~~~~~
获取名称:Sonya

4.Json字符串转Java对象

方法:JSON.parseObject()
代码:
System.out.println("~~~~~~~~~~~ 4.Json字符串 转 Java对象 ~~~~~~~~~~~");
User user = JSON.parseObject(ju,User.class);
System.out.println("获取名称:"+user.getName());
输出:
~~~~~~~~~~~ 4.Json字符串 转 Java对象 ~~~~~~~~~~~
获取名称:Sonya

5.Json字符串转List对象

方法:JSON.parseArray()
代码:
System.out.println("~~~~~~~~~~~ 5.Json字符串 转 List对象 ~~~~~~~~~~~");
List<User> jsonList = JSON.parseArray(jlist,User.class);
jsonList.forEach(u -> {
    System.out.println("对象:"+u);
    System.out.println("对象-名称:"+ u.getName());
});
输出:
~~~~~~~~~~~ 5.Json字符串 转 List对象 ~~~~~~~~~~~
对象:User(name=Sonya, password=12345, remark=@@@ ?| /d  、t  我是小小糖)
对象-名称:Sonya
对象:User(name=Aynos, password=54321, remark=@@@ ?| /ddff 你是不是傻呀 )
对象-名称:Aynos

6.Json字符串转Map

方法:
  • 第一种:JSON.parse(str)
  • 第二种:JSON.parseObject(str)
  • 第三种:JSON.parseObject(str, Map.class)
  • 第四种:JSONObject.parseObject(str, Map.class)
  • 第五种:JSON.parse(str)
代码:
System.out.println("~~~~~~~~~~~ 6.Json字符串 转 Map ~~~~~~~~~~~");
String str = "{\"name\":\"Sonya\",\"age\":\"18\",\"phone\":\"1501033****\"}";
// 第一种:JSON.parse()
Map<String,String> smap1 = (Map)JSON.parse(str);
// 第二种:JSON.parseObject()
Map<String,String> smap2 = (Map)JSON.parseObject(str);
// 第三种:JSON.parseObject(str, Map.class)
Map smap3 = JSON.parseObject(str, Map.class);
// 第四种:JSONObject.parseObject(str, Map.class)
Map smap4 = JSONObject.parseObject(str, Map.class);
// 第五种:JSON.parse()
Map<String,String> smap5 = (Map)JSONObject.parse(str);
输出:
第一种:{"phone":"1501033****","name":"Sonya","age":"18"}
key:phonevalue:1501033****
key:namevalue:Sonya
key:agevalue:18
第二种:{"phone":"1501033****","name":"Sonya","age":"18"}
key:phonevalue:1501033****
key:namevalue:Sonya
key:agevalue:18
第三种:{phone=1501033****, name=Sonya, age=18}
key:phonevalue:1501033****
key:namevalue:Sonya
key:agevalue:18
第四种:{phone=1501033****, name=Sonya, age=18}
key:phonevalue:1501033****
key:namevalue:Sonya
key:agevalue:18
第五种:{"phone":"1501033****","name":"Sonya","age":"18"}
key:phonevalue:1501033****
key:namevalue:Sonya
key:agevalue:18

2021年将要过去!努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值