加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Fastjson快速入门

发布时间:2020-12-16 19:15:44 所属栏目:百科 来源:网络整理
导读:在使用Ajax方式构建的web2.0应用中,通常需要使用JSON作为数据交换的格式,JSON和XML相比较,更加便于解析,易于学习和使用。 最原始的Ajax方式是创建XmlHttpRequest对象,来进行发送请求和接收响应的。但是,创建方式过于复杂,需要考虑到浏览器的兼容性、

在使用Ajax方式构建的web2.0应用中,通常需要使用JSON作为数据交换的格式,JSON和XML相比较,更加便于解析,易于学习和使用。

最原始的Ajax方式是创建XmlHttpRequest对象,来进行发送请求和接收响应的。但是,创建方式过于复杂,需要考虑到浏览器的兼容性、字符编码等诸多因素。

JQuery是一种基于Javascript的前端框架,提供了对Ajax的轻量级封转,以一种更加友好的方式使用Ajax技术,通常为$.ajax或者$.get/$.post方式。

EasyUI和Extjs则是Javascript的重量级封装库。这两者都提供了非常优秀的前端UI组件,例如日历组件calendar,表格组件datagrid,树状空间tree等;这些重量级的UI框架,提供了对Ajax更加良好的支持,很多情况下只需要提供ajax请求的url以及用于响应的data即可,开发者不再需要因为处理Ajax请求与响应的技术细节而抓耳挠腮了!

在传统的Java web开发中,我们通常使用out对象将生成的JSON文本写出到客户端,在前端使用Javascript对服务器端返回的JSON文本进行解析即可。

使用过Spring MVC的童鞋,一定会被它的强大并且简单所深深折服。Spring MVC框架会自动地将实体对象、或者实体对象List集合,转换为客户端所需要的JSON文本,而仅仅需要添加对Jackson.jar的依赖即可|伦理电影 www.akdy.cn

如果使用其他的框架技术如struts,或者使用servlet作为控制器的话,需要开发者手动的实现实体、实体集合到JSON文本的转换功能。幸运的是,我们可以使用开源的JSON处理包来帮助我们完成此项功能。如果使用json-lib-2.2.2-jdk15.jar的话,需要添加很多依赖包:

ezmorph.jar
commons-logging.jar
commons-lang.jar
commons-beanutils.jar
commons-collections.jar

比较繁琐,当然如果使用Maven作为项目构建工具,这自然不是问题。

我们还有更多选择的余地,Alibaba的温少实现了一个JSON处理jar,并且已经作为开源项目:fastjson-1.1.33.jar [可下载附件]。fastjson的优点是:开放源码、没有多余的依赖jar、强大并且性能显著。

[1]. 转为Java类型为JSON文本:

@ 大多数情况下,只需要一行代码即可,提供的参数可以是Java对象、对象的List集合,或者Map类型、Map的List集合等:String jsonStr = JSON.toJSONString(arg)

@ 如果存在Date类型的字段:如下代码是一种更加简单的处理方式:
String jsonStr = JSON.toJSONStringWithDateFormat(user,"yyyy-MM-dd");


@ 为了便于观察转换后的JSON结果,我们可以使用重载的方法,设置prettyFormat参数为true即可:
String jsonStr = JSON.toJSONString(user,true);

---------------------OUTPUT------------------------

[
{
"stuId":1,
"stuName":"James"
},sans-serif">"stuId":2,sans-serif">"stuName":"Bill"
}
]

[2]. JSON文本转为Java对象:

Userinfo user = JSON.parSEObject(jsonStr,Userinfo.class);

我们可以将客户端传入的JSON文本,反序列化为Java实体。

[3]. 使用JSONObject对象:

@ 在进行某项操作,比如删除时,我们需要反馈给客户端一个包含多个字段的对象:

JSONObject result = new JSONObject();

result.put("success",true);
result.put("msg","删除成功!");

@ 输出时,转换为JSON文本:

调用result.toString()的转换结果等同于传统的result.toJSONString()方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读