Android 中的Json解析工具fastjson 、序列化、反序列化

Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式

 

1、fastjson简介

     阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
    速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;

    功能强大,完全支持JavaBean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;

    支持Android;开源 (Apache 2.0)

 

2、fastjson下载地址

     gitHub 下载地址 : https://github.com/alibaba/fastjson

     Android jar包下载: http://repo1.maven.org/maven2/com/alibaba/fastjson/1.1.43.android/

   

3、常用的方法

    (1) 将JsonArray字符串转化成 list 集合, 比如:

         JSONArray array = 。。。。

         List adbeenList = new ArrayList() ;

         adbeenList = JSON.parseArray( array.toString() , ADBeen.class);

 

    (2)  将JavaBean序列化为JSON文本 

       JSON.toJSONString( Object object )

 

    (3) 日期格式化

    

	public void test5(){      Date date=new Date();    //输出毫秒值   System.out.println(JSON.toJSONString(date));  //默认格式为yyyy-MM-dd HH:mm:ss    System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));  //根据自定义格式输出日期  System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));   }

 

   4  fastjson 解析json字符串为四种类型

      1. JavaBean

          Person person = JSON.parseObject(jsonString, Person.class);

      2. List

          List listPerson =JSON.parseArray(jsonString, Person.class);

      3. List

          List listString = JSON.parseArray(jsonString, String.class);

      4. List>

          List> listMap = JSON.parseObject(jsonString, new TypeReference>>(){}); 

            (注意:此处可看出fastjson反射机制比gson更准确, id = 1001 通过fastjson反射仍是 id = 1001 , 而通过gson反射结果 为 id =1001.0 ,

              参考前篇程序运行结果图GSON方式生成和解析json数据)

 

5、List集合转化为JSON字符串 

package com.app;import java.io.Serializable;public class User implements Serializable{private static final long serialVersionUID = 1L;private String name ;private String age  ;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}
}

 

   User user1 = new User() ;user1.setName( "jack" ) ;user1.setAge( "30" );User user2 = new User() ;user2.setName( "sam" ) ;user2.setAge( "45" );List list = new ArrayList() ;list.add( user1 ) ;list.add( user2 ) ;HashMap map = new HashMap();  map.put( "data", list ) ;String string = JSON.toJSONString( map ) ;System.out.println( "ssss" + string );

运行结果:{"data":[{"age":"30","name":"jack"},{"age":"45","name":"sam"}]}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部