JSON

Android开发JSON之如何使用FastJson

字号+ 作者:H5之家 来源:H5之家 2015-11-12 11:10 我要评论( )

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首先在官网下载,然后应用到自己的项目中,下载地址如下:

 

   

 

    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的问题的详细叙述,希望本文对广大安卓开发者有所帮助,感谢阅读本文。

--软件开发网

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • android软件开发之webView.addJavascriptInterface循环渐进【一

    android软件开发之webView.addJavascriptInterface循环渐进【一

    2015-10-27 10:34

网友点评