一, 介绍
1. 什么是 fastjson?
fastjson 是阿里巴巴的开源 JSON 解析库, 它可以解析 JSON 格式的字符串, 支持将 Java Bean 序列化为 JSON 字符串, 也可以从 JSON 字符串反序列化到 JavaBean.
Fastjson 使用场景
Fastjson 已经被广泛使用在各种场景, 包括 cache 存储, RPC 通讯, MQ 通讯, 网络协议通讯, Android 客户端, Ajax 服务器处理程序等等.
2.fastjson 的优点
2.1 速度快
fastjson 相对其他 JSON 库的特点是快, 从 2011 年 fastjson 发布 1.1.x 版本之后, 其性能从未被其他 Java 实现的 JSON 库超越.
2.2 使用广泛
fastjson 在阿里巴巴大规模使用, 在数万台服务器上部署, fastjson 在业界被广泛接受. 在 2012 年被开源中国评选为最受欢迎的国产开源软件之一.
二, 代码示例
使用示例见链接: https://www.w3cschool.cn/fastjson/
代码示例:
- package com.asd.reserve.utils.fastjson.demo2;
- /**
- * @author zs
- * @date 2019/11/22 14:53
- */
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import java.util.ArrayList;
- import java.util.List;
- public class FastJsonDemo {
- static class Person{
- private String id ;
- private String name;
- private int age ;
- public Person(){
- }
- public Person(String id,String name,int age){
- this.id=id;
- this.name=name;
- this.age=age;
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";
- }
- }
- public static void main(String[] args) {
- //method1();
- //method2();
- //method3();
- //method4();
- method5();
- }
- /**
- *@Author: zs on 2020/1/3 9:56
- *@param:
- *@return:
- *@Description: 对象与 JSON 串互转
- */
- public static void method1(){
- System.out.println("javabean 转化示例开始 ----------");
- Person person = new Person("1","fastjson",1);
- // 将 javabean 转化成 JSON 字符串
- String jsonString = JSON.toJSONString(person);
- System.out.println(jsonString);
- // 将 JSON 字符串转化成 javabean 对象,
- person =JSON.parseObject(jsonString,Person.class);
- System.out.println(person.toString());
- System.out.println("javabean 转化示例结束 ----------");
- }
- /**
- *@Author: zs on 2020/1/3 9:56
- *@param:
- *@return:
- *@Description:List 集合与 JSON 串互转
- */
- public static void method2(){
- System.out.println("List<javabean > 转化示例开始 ----------");
- Person person1 = new Person("1","fastjson1",1);
- Person person2 = new Person("2","fastjson2",2);
- List<Person> personList = new ArrayList<Person>();
- personList.add(person1);
- personList.add(person2);
- String jsonString = JSON.toJSONString(personList);
- System.out.println("json 字符串:"+jsonString);
- // 解析 JSON 字符串
- List<Person> persons2 = JSON.parseArray(jsonString,Person.class);
- // 输出解析后的 person 对象, 也可以通过调试模式查看 persons2 的结构
- System.out.println("person1 对象:"+persons2.get(0).toString());
- System.out.println("person2 对象:"+persons2.get(1).toString());
- System.out.println("List<javabean > 转化示例结束 ----------");
- }
- public static void method3(){
- String result = "生成成功";
- String status = JSON.toJSONString(result);
- System.out.println(result);
- System.out.println(status);
- }
- public static void method4(){
- String status = "{\"status\":\" 生成成功 \"}";
- JSONObject jsonObject = JSONObject.parseObject(status);
- Object o = jsonObject.get("status");
- System.out.println(o);
- }
- public static void method5(){
- /**
- * 数据样式
- * {
- status: success,
- root: [{
- type: 'long',
- propName: 'reins',
- location: '0',
- propValue: '5228',
- desc: 'zs'
- }, {
- type: 'char',
- propName: 'reserve',
- location: '0',
- propValue: '-1',
- desc: 'zs'
- }]
- }*/
- String JSON = "{success: true,root: [{id:'123',name:'123',age:'123'}, {id:'123',name:'12321',age:'13123'}]}";
- JSONObject jsonObject = JSONObject.parseObject(JSON);
- Object success = jsonObject.get("success");
- Object root = jsonObject.get("root");
- List<Person> personList = JSON.parseArray(root+"", Person.class);
- System.out.println(success);
- }
- }
来源: http://www.bubuko.com/infodetail-3363281.html