FastJson

简介: FastJson的应用   一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。

FastJson的应用

 

一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

将javaBean对象包装成json格式

                JSONObject jsonObject=new JSONObject();
        User user=new User("尚晓飞", "男", 25, new Date(), "bjsxt");
        jsonObject.put("user", user);
        System.out.println("Test.main()"+jsonObject.toString());

                //打印结果:Test.main(){"user":{"age":25,"birthDay":1405067572140,"name":"尚晓飞","school":"bjsxt","sex":"男"}}
View Code

将list集合包装成json

 1 User user=new User("尚晓飞", "男", 25, new Date(), "bjsxt");
 2         User user2=new User("sxf", "女", 22, new Date(), "北京尚学堂");
 3         User user3=new User("当当", "男", 25, new Date(), "当当网");
 4         List<Object> userList=new ArrayList<Object>();
 5         
 6         userList.add(user);
 7         userList.add(user2);
 8         userList.add(user3);
 9         
10         JSONObject jsonObject=new JSONObject();
11         jsonObject.put("userlist", userList);
12         
13         
14         System.out.println("Test.main()"+jsonObject);
15         
16 //打印结果:Test.main(){"userlist":[{"age":25,"birthDay":1405069939080,"name":"尚晓飞","school":"bjsxt","sex":"男"},{"age":22,"birthDay":1405069939080,"name":"sxf","school":"北京尚学堂","sex":"女"},{"age":25,"birthDay":1405069939080,"name":"当当","school":"当当网","sex":"男"}]}
View Code

将list集合包装成json格式的数组

 1 User user=new User("尚晓飞", "男", 25, new Date(), "bjsxt");
 2         User user2=new User("sxf", "女", 22, new Date(), "北京尚学堂");
 3         User user3=new User("当当", "男", 25, new Date(), "当当网");
 4         List<Object> userList=new ArrayList<Object>();
 5         
 6         userList.add(user);
 7         userList.add(user2);
 8         userList.add(user3);
 9         
10         JSONArray jsonArray=new JSONArray(userList);
11         
12         
13         System.out.println("Test.main()"+jsonArray);
14 
15 //打印结果:Test.main()[{"age":25,"birthDay":1405069524031,"name":"尚晓飞","school":"bjsxt","sex":"男"},{"age":22,"birthDay":1405069524031,"name":"sxf","school":"北京尚学堂","sex":"女"},{"age":25,"birthDay":1405069524031,"name":"当当","school":"当当网","sex":"男"}]
View Code

将list集合包装成json格式的数组

1 User user=new User("尚晓飞", "男", 25, new Date(), "bjsxt");
2         User user2=new User("sxf", "女", 22, new Date(), "北京尚学堂");
3         User user3=new User("当当", "男", 25, new Date(), "当当网");
4         List<Object> userList=new ArrayList<Object>();
5         
6         userList.add(user);
7         userList.add(user2);
8         userList.add(user3);
9         JSON json=(JSON) JSON.toJSON(userList);
View Code

  在javascript中操作json对象

 1 //如果是一个json对象var abc={"key":"value"}
 2 //取出key对应的值
 3 var v=abc.key
 4 var v=abc["key"]
 5 
 6 
 7 //如果是一个json数组的对象   var abc=[{"one":"一","name":"尚晓飞"},{"one":"二","name":"尚小帅"}]
 8 
 9 for(var i=0;i<abc.length;i++){
10      var m=abc[i].name;
11      var o=abc[i].one; 
12      var m=abc[i]["name"]           
13 }
View Code

 FastJSON的API

1 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
2 public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
3 public static final  T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean 
4 public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
5 public static final  List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合 
6 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
7 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
8 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
View Code

测试代码

 1 Fave fave1=new Fave("打游戏", new Date());
 2         Fave fave2=new Fave("下象棋", new Date());
 3         
 4         Student st1=new Student("尚晓飞", 1,new Date(),fave1);
 5         Student st2=new Student("尚小帅",1,new Date(),fave2);
 6         
 7         List<Student> list=new ArrayList<Student>();
 8         list.add(st1);
 9         list.add(st2);
10         
11         //javaBean---》json格式字符串
12         String jsonString=JSONObject.toJSONString(st1);
13         String listString=JSONObject.toJSONString(list);
14         System.out.println("javabean--->string"+jsonString);
15         //打印结果:javabean--->string{"birthday":1411713587089,"fave":{"date":1411713587088,"name":"打游戏"},"name":"尚晓飞","sex":1}
16         System.out.println("list---->String"+listString);
17         //打印结果:list---->String[{"birthday":1411714397844,"fave":{"date":1411714397843,"name":"打游戏"},"name":"尚晓飞","sex":1},
18         //{"birthday":1411714397844,"fave":{"date":1411714397843,"name":"下象棋"},"name":"尚小帅","sex":1}]
19         
20         //javaBean---》json对象
21         JSONObject jsonObject=(JSONObject) JSONObject.toJSON(st1);
22         
23         String nameString=(String) jsonObject.get("name");//根据key值获取json对象的value值
24         Object object= jsonObject.get("fave");//特殊:转成的fave内容为{key:vlaue}所以说不能够转换成fave对象,只能进行二次转换,转换成javaBean
25         String fav=object.toString();
26         
27         //将json格式的字符串转换成---》javaBean
28         Fave fave=JSONObject.parseObject(fav, Fave.class);
29         System.out.println("Test.main()"+nameString);//尚晓飞
30         System.out.println("Test.main()"+fave.getName());//打游戏
View Code

 

相关文章
|
1月前
|
人工智能 自然语言处理 数据可视化
2026实测指南:主流办公AI助手全场景提效使用经验
本文系统解析AI办公提效的四大核心场景(会议自动化、文档表格处理、HR/销售流程、知识库沉淀),对比Coze、Dify、飞书aily、WPS AI、泛微Xiaoe.AI五大平台特性与适配边界,结合管理者、HR、行政、销售等岗位需求给出落地建议,并强调“高频切入、人工复核、生态联动”三大实践原则。
|
4月前
|
Windows
Maple 2025安装教程 Windows版:解压+管理员运行+自定义路径
Maple 2025 是全球领先的数学软件,集符号计算、无限精度数值运算、智能建模与仿真、互联网集成及高效4GL语言于一体,助力科研与工程创新。(239字)
|
5月前
|
存储 人工智能 监控
OpenClaw(龙虾)秒级部署指南及安全避坑手册
2026年初爆火的OpenClaw(“龙虾”)是一款开源AI智能体,突破传统AI仅能“回答”的局限,真正实现“动手执行”——自动整理文件、填表抢票、写代码、管服务器等。本文详解其定义、四大实用场景、阿里云一键部署教程及安全避坑指南,助你零门槛上手!
1375 3
|
弹性计算 运维 监控
Apsara Clouder云计算专项技能认证:云服务器ECS
Apsara Clouder云计算专项技能认证:云服务器ECS
|
机器学习/深度学习 人工智能 量子技术
量子计算的商业化前景:未来科技的颠覆性力量
量子计算的商业化前景:未来科技的颠覆性力量
733 17
|
网络协议 定位技术 网络安全
IPIP.NET-IP地理位置数据
IPIP.NET 是一家专注于 IP 地理位置数据的提供商,基于 BGP/ASN 数据与全球 800+ 网络监测点技术,提供高精度的 IPv4 和 IPv6 定位服务。其核心服务包括地理位置查询、详细地理信息和网络工具等,广泛应用于网络安全、广告营销、CDN 优化等领域。数据覆盖全球,支持多语言,每日更新确保实时性。IPIP.NET 提供 API 接口、离线数据库及多种语言 SDK,方便开发者集成使用。
3237 0
|
Java 关系型数据库 MySQL
Spring事务失效,我总结了这7个主要原因
本文详细探讨了Spring事务在日常开发中常见的七个失效原因,包括数据库不支持事务、类不受Spring管理、事务方法非public、异常被捕获、`rollbackFor`属性配置错误、方法内部调用事务方法及事务传播属性使用不当。通过具体示例和源码分析,帮助开发者更好地理解和应用Spring事务机制,避免线上事故。适合所有使用Spring进行业务开发的工程师参考。
573 2
|
机器学习/深度学习 运维 算法
高斯混合模型(GMM)
高斯混合模型(GMM)
|
编解码 缓存 算法
Three.js如何降低3D模型的大小以便更快加载
为加快600MB的3D模型在Three.js中的加载速度,可采用多种压缩方法:1) 减少顶点数,使用简化工具或LOD技术;2) 压缩纹理,降低分辨率或转为KTX2等格式;3) 采用高效文件格式如glTF 2.0及draco压缩;4) 合并材质减少数量;5) 利用Three.js内置优化如BufferGeometry;6) 按需分批加载模型;7) Web Workers后台处理;8) 多模型合并减少绘制;9) 使用Texture Atlas及专业优化工具。示例代码展示了使用GLTFLoader加载优化后的模型。
2674 12