Fastjson 对象或数组转JSON

Fastjson 对象或数组转JSONFastjson对象或数组转JSONw3cshool:https://www.w3cschool.cn/fastjson/Fastjson对象或数组转JSON:https://www.w3cschool.cn/fastjson/fastjson-ex1.htmlFastjson阿里巴巴工程师开源的一个json库:Fastjson,这个库在解析速度和易用性上来说都很不错。在日志…

大家好,又见面了,我是你们的朋友全栈君。

Fastjson 对象或数组转JSON

w3cshool:https://www.w3cschool.cn/fastjson/
Fastjson对象或数组转JSON :https://www.w3cschool.cn/fastjson/fastjson-ex1.html

Fastjson阿里巴巴工程师开源的一个 json 库:Fastjson,这个库在解析速度和易用性上来说都很不错。

在日志解析,前后端数据传输交互中,经常会遇到 String 与 map、json、xml 等格式相互转换与解析的场景,其中 json 基本成为了跨语言、跨前后端的事实上的标准数据交互格式。应该来说各个语言中 解析 json 的库都一大片(具体 json 格式与三方库的介绍请见: http://www.json.org/json-zh.html ),比如 python 都集成在了内置库中,成为标准 API,今天我们要聊的是 java 中如何方便的使用 json 格式。

下面一个示例是如何使用Fastjson 把对象或数组转JSON

package test;  
  
import java.util.ArrayList;  
import java.util.List;  
  
import com.alibaba.fastjson.JSON;  
  
class User {  
    private String name;  
    private int age;  
  
    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 "User [name=" + name + ", age=" + age + "]";  
    }  
};  
  
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);  
    }  
}

输出结果:

jsonString:{"name":"admin","users":[{"age":35,"name":"guest"},{"age":0,"name":"root"}]}  
group2:UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]]  
jsonString2:[{"age":35,"name":"guest"},{"age":0,"name":"root"}]  
users2:[User [name=guest, age=35], User [name=root, age=0]]  

fastjson通过各方面测试都很好,功能性能都是No.1,喜欢,它的源代码质量很高,作者也煞费苦心,将性能做到了最好,全面超越其他的json类库。
通过fastjson我们可以快速进行开发。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151838.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 谷歌dns和阿里dns_最快dns排行

    谷歌dns和阿里dns_最快dns排行国内比较大型大众常用的公共DNS服务器公共DNS服务器,即系统默认的DNS解析服务器。DNS全称DomainNameSystem,即域名解析系统。DNS帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP地址”(即互联网协议地址)。由于IP地址(为一串数字)不方便记忆,DNS允许用户使用一串常见的字母(即“域名”)取代。公共DNS服务器,具有无广告、可以在一定程度上防止DNS劫持、不需因上网环境的改变而改变等优势,但是,使用公共DNS也可能存在系统响应慢、被劫

    2022年9月6日
    4
  • 探索SQL Server元数据(二)

    探索SQL Server元数据(二)

    2021年11月27日
    39
  • 一个短信验证码功能引发的总结思考[通俗易懂]

    从简单的功能探寻背后的技术。文章目录故事短信验证码设计总结1、时间限制2、图形验证码限制 + 时间限制3、手机号+指定时间可以发短信次数限制4、IP及Cookie限制5、短信预警机制后记故事昨天看到一个地址,新用户免费领取X登读书APP的14天会员,2020年了,要开始读书了。看到这个活动是在笔记本上,于是用笔记本浏览器访问活动页面,输入手机号,收到验证码,填写验证码,领取这个会员。本…

    2022年2月28日
    48
  • mysql alter 修改字段类型_Mysql必读mysql 增加修改字段类型及删除字段类型「建议收藏」

    mysql alter 修改字段类型_Mysql必读mysql 增加修改字段类型及删除字段类型「建议收藏」《MysqL必读MysqL增加修改字段类型及删除字段类型》要点:本文介绍了MysqL必读MysqL增加修改字段类型及删除字段类型,希望对您有用。如果有疑问,可以联系我们。添加)增加一个新列altertablet2adddtimestamp;altertableinfosaddextinyintnotnulldefault’0′;//删除列altertablet2…

    2022年5月24日
    31
  • App2sd功能和Asec文件

    App2sd功能和Asec文件本文原创作者:CloudChou.欢迎转载,请注明出处和本文链接1.asec文件是什么?asec的全称是AndroidSecureExternalCaches以前app安装好之后,app和app的数据都是放在data分区,而data分区经常存储空间不够,于是从Android2.2,Froyo版本开始,Android开始支持App2Sd功能,所谓的App2Sd就是安装ap

    2022年7月20日
    10
  • Linux运维面试题2

    Linux运维面试题21.apache怎么实现负载均衡答案:多台机器跑apache,然后其中一台跑nginx,让nginx去代理多台apache实现负载均衡2.一台Linux服务器负载高,连接慢,怎么查看答案:先用w看负载多少,用top看哪个进程占用cpu高,同时用top按M看哪个进程占用内存多,用iotop看哪个进程读写频发,用sar命令或者nload命令查看网卡流量,是否跑满带宽3.现有A文件,编写shell…

    2022年6月5日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号