当前位置: 首页 > news >正文

我的Android进阶之旅------FastJson的简介

        在最近的工作中,在客户端和服务器通信中,需要采用JSON的方式进行数据传输。简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。
网上有许多开源的JSON框架,比如Gson,Jackson,FastJson等框架。

      FastJson是阿里巴巴工程师开发的一个Json处理工具包,包括“序列化”和“反序列化”两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。

      一个JSON库涉及的最基本功能就是 序列化 和 反序列化 

      Fastjson支持java bean的直接序列化。你可以使用 com.alibaba.fastjson.JSON 这个类进行序列化和反序列化。

      Fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库。

      各个版本jar包下载地址:https://repo1.maven.org/maven2/com/alibaba/fastjson/

源码下载地址:https://github.com/alibaba/fastjson

主要特点:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson

  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

  • 零依赖(没有依赖其它任何类库除了JDK)

经常调用的方法有

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



 

 

具体的测试可以参考下面的例子:

http://www.cnblogs.com/zhenmingliu/archive/2011/12/29/2305775.html

http://www.cnblogs.com/Jie-Jack/p/3758046.html

http://www.cnblogs.com/zhaoyueplc/p/3757591.html

fastJson,jackJson,Gson性能比较

http://chenyanxi.blog.51cto.com/4599355/1543445



 


                            ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

====================================================================================

 


转载于:https://www.cnblogs.com/ouyangpeng/p/8537962.html

相关文章:

  • WebX5 Data判断当前行的值是否改变,以及改变当前行的状态
  • AngularJS学习笔记
  • 前辈的Linux学习心得
  • mysql修改为utf8格式
  • python分析accesslog并排序
  • kali debian linux 的samba 共享设置
  • div如何居中
  • BestCoder Round #50 (div.1) 1001 Distribution money (HDU OJ 5364)
  • Mac 上安装Win10 [missing operating system]解决方法
  • 使用 adb logcat 显示 Android 日志
  • dos移动一个文件内的所有内容到另一个文件
  • iPhone手机屏幕的尺寸180330更新
  • 二叉树的遍历
  • charles使用教程指南
  • 爬虫小demo
  • axios 和 cookie 的那些事
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • eclipse的离线汉化
  • Netty 4.1 源代码学习:线程模型
  • socket.io+express实现聊天室的思考(三)
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 基于遗传算法的优化问题求解
  • 你不可错过的前端面试题(一)
  • 前端工程化(Gulp、Webpack)-webpack
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 深入 Nginx 之配置篇
  • 为什么要用IPython/Jupyter?
  • 携程小程序初体验
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 大数据全解:定义、价值及挑战
  • #AngularJS#$sce.trustAsResourceUrl
  • #Lua:Lua调用C++生成的DLL库
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (02)Hive SQL编译成MapReduce任务的过程
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Note)C++中的继承方式
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (七)Java对象在Hibernate持久化层的状态
  • (全注解开发)学习Spring-MVC的第三天
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)【Hibernate总结系列】使用举例
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NetCore部署微服务(二)
  • .NET分布式缓存Memcached从入门到实战
  • .NET企业级应用架构设计系列之应用服务器
  • .NET中统一的存储过程调用方法(收藏)
  • @Repository 注解
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [100天算法】-二叉树剪枝(day 48)