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

 

相关文章
|
JSON 前端开发 Java
SpringBoot项目Http406错误问题解决
一、背景 1、自定义了返回类 2、控制器使用@ResponseBody注解标记
|
存储 JSON 网络协议
阿里巴巴FastJSON使用实例
阿里巴巴FastJSON使用实例
1354 0
|
14天前
|
Oracle Java 关系型数据库
【全网最详细】JDK11下载安装图文教程 | Java11开发环境配置详解
JDK11是Oracle于2018年发布的长期支持(LTS)版本,支持至2026年。它引入模块化系统、var局部变量推断、HTTP/2客户端等关键特性,在稳定性、现代性与生态兼容性间取得良好平衡,至今仍是企业级Java开发主流选择。
|
XML JSON 人工智能
Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8
Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8
2702 0
|
人工智能 调度 芯片
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
|
JSON fastjson Java
FastJson使用技巧
FastJson使用技巧
7327 158
|
自然语言处理 安全 程序员
程序员推荐的12款实用模板免费的WordPress主题
本文介绍了12款实用的免费WordPress主题,包括Sydney、PopularFX、Zakra等,涵盖企业、博客、美食等多种风格。这些主题功能丰富,如自定义布局、预制模板、AMP兼容等,适合不同需求的用户。每款主题均有精美预览图展示,建议收藏以备后续使用。更多主题可访问ztmao.com。
735 2
程序员推荐的12款实用模板免费的WordPress主题
|
存储 Java 关系型数据库
java: 无法访问org.springframework.context.ConfigurableApplicationContext
`亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。` `项目背景`:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。 `举例说明`:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。
450 11
|
SQL 关系型数据库 MySQL
SQLAlchemy + 协程,实现异步的 ORM
SQLAlchemy + 协程,实现异步的 ORM
1389 1
|
存储 SQL NoSQL
SpringBoot 整合 MongoDB 超详细(一)
在前面的文章中,我们详细的介绍了 MongoDB 的配置和使用,如果你对 MongoDB 还不是很了解,也没关系,在 MongoDB 中有三个比较重要的名词:数据库、集合、文档!
12659 1