您的位置:首页 > 移动开发 > Android开发

Android开发之FastJson概述与简单使用

2014-09-12 16:53 483 查看
Android开发之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首先在官网下载,然后应用到自己的项目中,GitHub链接:https://github.com/alibaba/fastjsonFastJson 1.2.6直接下载:https://github.com/alibaba/fastjson/archive/1.2.6.zip
1.概述一下Fastjson中的经常调用的方法
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


2.简单的使用Fastjson1)服务器端 使用 Fastjson 将数据转换成json字符串,主要使用的函数如下:
public static String createJsonString(Object value) { 

	String alibabaJson = JSON.toJSONString(value);//此处转换 

	return alibabaJson; 
}

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

2)客户端 将从服务器端获取到的json字符串 转换为相应的javaBean,下面获取Json数据的函数例子,供参考:
//获取Json数据
public static String getJsonContent(String urlStr) { 

        try {
			// 获取HttpURLConnection连接对象 
            URL url = new URL(urlStr); 
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); 

            // 设置连接属性 
            httpConn.setConnectTimeout(3000); 
            httpConn.setDoInput(true); 
            httpConn.setRequestMethod("GET"); 

            // 获取相应码 200表示请求success
            int respCode = httpConn.getResponseCode(); 

            if (respCode == 200){
				//转换并返回
                return convertStream2Json(httpConn.getInputStream()); 
            } 
         }catch (MalformedURLException e){
            e.printStackTrace(); 

			}catch (IOException e){ 

				e.printStackTrace(); 
         } 

        return null; 
    } 

private static String convertStream2Json(InputStream inputStream) { 

        String jsonStr = ""; 
         // ByteArrayOutputStream相当于内存输出流 
        ByteArrayOutputStream out = new ByteArrayOutputStream(); 
        byte[] buffer = new byte[1024]; 
        int len = 0; 
        // 将输入流转移到内存输出流中 
         while ((len = inputStream.read(buffer, 0, buffer.length)) != -1){

                out.write(buffer, 0, len); 
          } 
         // 将内存流转换为字符串 
         jsonStr = new String(out.toByteArray()); 

        return jsonStr; 
    }


3)使用泛型获取javaBean,也可像上述所说,Fastjson API入口类是 com.alibaba.fastjson.JSON ,常用的序列化操作都可以直接在调用JSON类上的静态方法完成,下面再次封装了一下。
public static T parse2Bean(String jsonString, Class cls) {

       T t = null;

	   //调用JSON类中的方法,parse为Bean对象
       t = JSON.parseObject(jsonString, cls); 

       return t; 
   }


转载注明出处:/article/1476920.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐