博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 中的Json解析工具fastjson 、序列化、反序列化
阅读量:5896 次
发布时间:2019-06-19

本文共 2487 字,大约阅读时间需要 8 分钟。

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 下载地址 :

     Android jar包下载:

   

3、常用的方法

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

         JSONArray array = 。。。。

         List<ADBeen> adbeenList = new ArrayList<ADBeen>() ;

         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<JavaBean>

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

      3. List<String>

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

      4. List<Map<String,Object>>

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

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

              参考前篇程序运行结果图)

 

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"}]}

 

转载地址:http://dkosx.baihongyu.com/

你可能感兴趣的文章
java.sql.SQLException: Lock wait timeout exceeded --转
查看>>
使用C#进行图像处理的几种方法(转)
查看>>
Blob
查看>>
input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格
查看>>
interactive_timeout wait_timeout
查看>>
魔兽争霸3怎么玩
查看>>
Jenkins2.32打包Unity项目的记录
查看>>
xcode编写c/c++静态库使用系统头文件问题
查看>>
SpringMVC--拦截器的使用
查看>>
《Qt on Android核心编程》介绍
查看>>
手把手视频:万能开源Hawk抓取动态网站
查看>>
C语言---数据结构(内建,数组,自定义)
查看>>
Ruby中使用patch HTTP方法
查看>>
c :函数指针具体解释
查看>>
hdu 4893Wow! Such Sequence!
查看>>
Java信号量 Semaphore 介绍
查看>>
【HttpClient4.5中文教程】【第一章 :基础】1.1运行请求(二)
查看>>
qsc oj 22 哗啦啦村的刁难(3)(随机数,神题)
查看>>
java上传图片剪切工具类
查看>>
UVA - 10622 Perfect P-th Powers
查看>>