json的序列化与反序列化

FastJson 介绍     

 java 处理 json 的库 : fastjson , jackson , gson

        fastjson 是阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到JavaBean。 fastjson 是 json 的序列化和反序列化fastjson 已经被广泛使用在各种场景,包括 cache 存储、RPC 通讯、MQ 讯、网络协议通讯、Android 客户端、Ajax 服务器处理程序等等。
        fastjson 相对其他 JSON 库的特点是快,从 2011 年 fastjson 发布 1.1.x 版本之后,其性能从未被其他 Java 实现的 JSON 库超越。

FastJson 的使用:   

        第一:引入对于的依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.20</version>
</dependency>

        第二:写一个student对象来模拟fastJson的序列化与反序列化

 

@Data
public class Student {
   private String name;
   private int age;
}

         第三:模拟序列化,通过创建一个student对象,用JSONObject.toJSONString(student)实现序列化

public void json() {
    //序列化将对象转化成字符串
    Student student = new Student();
    student.setName("小新");
    student.setAge(20);
    System.out.println(student);
    String jsonString = JSONObject.toJSONString(student);
    System.out.println(jsonString);
}

        第四:发序列化 获取获取json字符串后将json字符串放入JSONObject.parseObject(json, Student.class);获得响应的对象。

@org.junit.Test
public void json01() {
    //反序列化将json转化成对象
   String json="{\"age\":20,\"name\":\"小新\"}";
    Student student = JSONObject.parseObject(json, Student.class);
    System.out.println(student);
}

        第五:解析json对象,当我们获取json对象后如果是去反序列化后再去获取对象中的某个值时这时的效率比较低所以我们需要对json进行解析,JSONObject.parseObject(json);可以通过以上代码解析解析,其实他的底层原理就是将获取对象的属性放到map中,当你需要某个属性的时候就可以和使用map一样将属性名当成key去获取。

@org.junit.Test
public void json02() {
    //解析json对象
    String json="{\"age\":20,\"name\":\"小新\"}";
    JSONObject jsonObject = JSONObject.parseObject(json);
    System.out.println(jsonObject.getString("name"));
    System.out.println(jsonObject.getInteger("age"));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值