您的位置:首页 > Web前端 > JavaScript

Fastjson快速入门

2014-06-30 12:36 330 查看
 在使用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"
                 },
                 {
                          "stuId":2,
                          "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()方法。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: