Alibaba Fastjson简介及使用

        fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。其具有速度快及使用简单的优点。JSON类是一个抽象类,其有两个继承类:JSONObject类和JSONArray类。

class UserGroup {  
    private String name;  
    private List<User> users = new ArrayList<User>();  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public List<User> getUsers() {  
        return users;  
    }  
  
    public void setUsers(List<User> users) {  
        this.users = users;  
    }  
  
    @Override  
    public String toString() {  
        return "UserGroup [name=" + name + ", users=" + users + "]";  
    }  
}  
class UserGroup {  
    private String name;  
    private List<User> users = new ArrayList<User>();  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public List<User> getUsers() {  
        return users;  
    }  
  
    public void setUsers(List<User> users) {  
        this.users = users;  
    }  
  
    @Override  
    public String toString() {  
        return "UserGroup [name=" + name + ", users=" + users + "]";  
    }  
}  

 以下是它的常见使用:

class FastJsonTest {  
    public static void main(String[] args) {  
        // 构建用户geust  
        User guestUser = new User();  
        guestUser.setName("guest");  
        guestUser.setAge(28);  
        // 构建用户root  
        User rootUser = new User();  
        rootUser.setName("root");  
        guestUser.setAge(35);  
        // 构建用户组对象  
        UserGroup group = new UserGroup();  
        group.setName("admin");  
        group.getUsers().add(guestUser);  
        group.getUsers().add(rootUser);  
        // 用户组对象转JSON串  
        String jsonString = JSON.toJSONString(group);  
        System.out.println("jsonString:" + jsonString);  
        // JSON串转用户组对象  
        UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);  
        System.out.println("group2:" + group2);  
  
        // 构建用户对象数组  
        User[] users = new User[2];  
        users[0] = guestUser;  
        users[1] = rootUser;  
        // 用户对象数组转JSON串  
        String jsonString2 = JSON.toJSONString(users);  
        System.out.println("jsonString2:" + jsonString2);  
        // JSON串转用户对象列表  
        List<User> users2 = JSON.parseArray(jsonString2, User.class);  
        System.out.println("users2:" + users2); 

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "hehe");
        UserGroup userGroup = JSON.toJSONObject(jsonObject, UserGroup.Class);
    }
}

常见使用总结:

1)json串转对象

// 在fastjson中提供了一个用于处理泛型反序列化的类TypeReference!!,该字段传参数时需要加上{}。
因为该类本身的构造方法时protected,当不是该package下的类使用该TypeReference时,应使用其继承子类实例即可,此处{}则表示是匿名内部类实现,即采用很懒的方式创建了一个子类去继承TypeReference,这样就省去了真正新建一个类的繁琐。因为是子类,可以使用父类的protected方法对自己进行构造啦!! 
---推荐该方法
UserGroup group3 = JSON.parseObject(jsonString, new TypeReference<UserGroup.class>() {});

// JSON串转用户组对象  
UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);  

2)json串转数组

// JSON串转用户对象列表  
List<User> users2 = JSON.parseArray(jsonString2, User.class);  

3)对象(包括数组对象)转jsonString

// 用户对象(数组)转JSON串  
String jsonString2 = JSON.toJSONString(users);

4)JSONObject对象转java bean

JavaObject javaObject = new JavaObect();
javaObject.put("userName", "hehe");
TestDO testDO = JSON.toJavaObject(jsonObject, TestDO.class);

参考文档:

https://www.w3cschool.cn/fastjson/fastjson-ex1.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值