Fastjson使用示例及常见问题

一、介绍

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);
    }
}

猜你喜欢

转载自www.cnblogs.com/vole/p/12131972.html
今日推荐