菜鸟笔记
提升您的技术认知

fastjson详解-ag真人游戏

一、fastjson介绍

​在前后端数据传输交互中,经常会遇到字符串(string)与json,xml等格式相互转换与解析,其中json以跨语言,跨前后端的优点在开发中被频繁使用,基本上可以说是标准的数据交换格式。fastjson 是一个java语言编写的高性能且功能完善的json库,它采用一种“假定有序快速匹配”的算法,把json parse 的性能提升到了极致。它的接口简单易用,已经被广泛使用在缓存序列化,协议交互,web输出等各种应用场景中。

fastjson是啊里巴巴的的开源库,用于对json格式的数据进行解析和打包。

特点如下:

  1. 能够支持将java bean序列化成json字符串,也能够将json字符串反序列化成java bean。
  2. 顾名思义,fastjson操作 json的速度是非常快的。
  3. 无其他包的依赖。
  4. 使用比较方便。

二、fastjson使用

maven依赖:


    com.alibaba
    fastjson
    
    版本根据自己需要

三、fastjson常用api

fastjson api 入口类是com.alibaba.fastjson.json,常用的序列化操作都可以在json类上的静态方法直接完成。

public static final object parse(string text); // 把json文本parse为jsonobject或者jsonarray
public static final jsonobject parseobject(string text); // 把json文本parse成jsonobject 
    
public static final  t parseobject(string text, class clazz); // 把json文本parse为javabean 
public static final jsonarray parsearray(string text); // 把json文本parse成jsonarray 
public static final  list parsearray(string text, class clazz); //把json文本parse成javabean集合 
public static final string tojsonstring(object object); // 将javabean序列化为json文本 
public static final string tojsonstring(object object, boolean prettyformat); // 将javabean序列化为带格式的json文本 
public static final object tojson(object javaobject); //将javabean转换为jsonobject或者jsonarray。

四、示例

public class user {
  
    private string username;
    private string password;
    public user() {
  
    }
    public user(string username, string password) {
  
        this.username = username;
        this.password = password;
    }
    public string getusername() {
  
        return username;
    }
    public void setusername(string username) {
  
        this.username = username;
    }
    public string getpassword() {
  
        return password;
    }
    public void setpassword(string password) {
  
        this.password = password;
    }
    @override
    public string tostring() {
  
        return "user{"  
                "username='"   username   '\''  
                ", password='"   password   '\''  
                '}';
    }
}
public class usergroup {
  
    private string name;
    private list users = new arraylist();
    public usergroup() {
  
    }
    public usergroup(string name, list users) {
  
        this.name = name;
        this.users = users;
    }
    public string getname() {
  
        return name;
    }
    public void setname(string name) {
  
        this.name = name;
    }
    public list getusers() {
  
        return users;
    }
    public void setusers(list users) {
  
        this.users = users;
    }
    @override
    public string tostring() {
  
        return "usergroup{"  
                "name='"   name   '\''  
                ", users="   users  
                '}';
    }
}

1. java类转换为json字符串:

	/**
     * java对象转换为json字符串
     */
    @test
    public void objtojson() {
  
        //简单对象转换
        user user = new user("root", "123456");
        //调用tojsonstring()
        string userjson = json.tojsonstring(user);
        system.out.println("java类转换为json串:"   userjson);
        //集合转json串
        user user1 = new user("zhangsan", "123456");
        user user2 = new user("lisi", "000");
        list users = new arraylist();
        users.add(user1);
        users.add(user2);
        //调用tojsonstring()
        string usersjson = json.tojsonstring(users);
        system.out.println("集合转json串:"   usersjson);
        //复杂java类转换对象
        usergroup usergroup = new usergroup("usergroup", users);
        //调用tojsonstring()
        string usergroupjson = json.tojsonstring(usergroup);
        system.out.println("复杂java类转换json串:"   usergroupjson);
    }
java类转换为json串:{"password":"123456","username":"root"}
集合转json串:[{"password":"123456","username":"zhangsan"},{"password":"000","username":"lisi"}]
复杂java类转换json串:{"name":"usergroup","users":[{"password":"123456","username":"zhangsan"},{"password":"000","username":"lisi"}]}

2. json字符串转为java类:

/**
     * json字符串转为java类
     * 注:字符串中使用双引号需要转义 (" --> \"),这里使用的是单引号,易读性会好很多。
     * json串以“{}”包裹,转换为java类时,使用:parseobject();
     * json串以“[]”包裹,转换为java类时,使用:parsearray();
     */
    @test
    public void jsontoobj(){
  
        /* json字符串转简单java对象
         * 字符串:{"password":"123456","username":"dmego"}
         */
        string jsonstr1 = "{'password':'123456','username':'ggf'}";
        // 调用parseobject()
        user user = json.parseobject(jsonstr1, user.class);
        system.out.println("json字符串转简单java对象:" user.tostring());
        /*
         * json字符串转list
网站地图