安卓开发

当前位置:首页 >> 开发资料 已经有 12 人觉得本文很赞,如果本文对您有帮助,请支持我们,我们会做的更好

    Android开发JSON之如何使用FastJson

    • 来源:admin
    • 作者:管理员
    • 时间:2013-07-11
    • 点击:24060
    • 收藏本文

        关键字:Android,json,FastJson

        在Android开发中,我们Android客户端如果要和服务器端交互,一般都会采用json数据格式进行交互,FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。你可以使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库。

        FastJson速度最快,fastjson具有极快的性能,超越任其他的Java Json parser。

        FastJson功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖。

        Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

        使用Fastjson首先在官网下载,然后应用到自己的项目中,下载地址如下:

        http://code.alibabatech.com/wiki/display/FastJSON/Download

        1.首先概述一下Fastjson中的经常调用的方法

      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。

        2.如何使用Fastjson

        1)服务器端使用Fastjson将数据转换成json字符串

        主要使用的函数如下:

      1 public static String createJsonString(Object value)
      2     {
      3         String alibabaJson = JSON.toJSONString(value);//此处转换
      4         return alibabaJson;
      5     }

        服务器端调用此函数执行转换即可,此处不再赘述。

        2)客户端将从服务器端获取到的json字符串转换为相应的javaBean,下面给以写核心的函数例子,供读者参考:

      1 public static String getJsonContent(String urlStr)
      2     {
      3         try
      4         {// 获取HttpURLConnection连接对象
      5             URL url = new URL(urlStr);
      6             HttpURLConnection httpConn = (HttpURLConnection) url
      7                     .openConnection();
      8             // 设置连接属性
      9             httpConn.setConnectTimeout(3000);
     10             httpConn.setDoInput(true);
     11             httpConn.setRequestMethod("GET");
     12             // 获取相应码
     13             int respCode = httpConn.getResponseCode();
     14             if (respCode == 200)
     15             {
     16                 return ConvertStream2Json(httpConn.getInputStream());
     17             }
     18         }
     19         catch (MalformedURLException e)
     20         {
     21             // TODO Auto-generated catch block
     22             e.printStackTrace();
     23         }
     24         catch (IOException e)
     25         {
     26             // TODO Auto-generated catch block
     27             e.printStackTrace();
     28         }
     29         return "";
     30     }
     31     private static String ConvertStream2Json(InputStream inputStream)
     32     {
     33         String jsonStr = "";
     34         // ByteArrayOutputStream相当于内存输出流
     35         ByteArrayOutputStream out = new ByteArrayOutputStream();
     36         byte[] buffer = new byte[1024];
     37         int len = 0;
     38         // 将输入流转移到内存输出流中
     39             while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
     40             {
     41                 out.write(buffer, 0, len);
     42             }
     43             // 将内存流转换为字符串
     44             jsonStr = new String(out.toByteArray());
     45         return jsonStr;
     46     }

    3)使用泛型获取javaBean(核心函数)

      1     public static T getPerson(String jsonString, Class cls) {
      2         T t = null;
      3         t = JSON.parseObject(jsonString, cls);
      4         return t;
      5     }
      6     public static List getPersons(String jsonString, Class cls) {
      7         List list = new ArrayList();
      8         list = JSON.parseArray(jsonString, cls);
      9         return list;
     10     }

        以上是本文关于Android开发JSON之如何使用FastJson的问题的详细叙述,希望本文对广大安卓开发者有所帮助,感谢阅读本文。

     

     


     


    本文为Android开发学习网原创/整理,未经允许不得转载,如需转载请联系:androidStudynet@126.com



    读后点评 感谢支持 我的建议
公告信息
    本站安卓版APP正式上线,欢迎下载
本站提供的android教程仅用于android培训,对任何法律问题及风险不承担任何责任 本站部分内容来自网络,如有侵权,请联系本站 站点地图
广告/友情链接请联系:QQ:416225054 Email:androidstudynet@126.com 安卓版:下载 QQ群:480637276