Android 中的Json解析工具fastjson 、序列化、反序列化
来源:互联网 发布:xp系统怎么优化 编辑:程序博客网 时间:2024/06/07 03:19
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<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 ,
参考前篇程序运行结果图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<User> list = new ArrayList<User>() ; list.add( user1 ) ; list.add( user2 ) ; HashMap<String, Object> map = new HashMap<String, Object>(); map.put( "data", list ) ; String string = JSON.toJSONString( map ) ; System.out.println( "ssss" + string );
运行结果:{"data":[{"age":"30","name":"jack"},{"age":"45","name":"sam"}]}
- Android 中的Json解析工具fastjson 、序列化、反序列化
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson生成和解析json数据,序列化和反序列化数据
- fastjson 复杂json 序列化、反序列化
- FastJson解析实例--对象序列化和反序列化
- fastjson反序列化
- JSON解析(序列化和反序列化)
- JSON序列化、JSON反序列化
- c#中的Json的序列化和反序列化
- Javascript中的Json序列化和反序列化
- C#中的Json的序列化和反序列化
- Newtonsoft.Json.dll 中的序列化与反序列化
- ANDROID轻量级JSON序列化和反序列化
- Android Http请求框架二:xUtils 框架网络请求
- Android 中的编码与解码
- 【OpenGL】GPU处理图像 Shader的入门
- Android 5中不同效果的Toast
- PDA-SQLITE-CS
- Android 中的Json解析工具fastjson 、序列化、反序列化
- 3D效果vista下chrome出现反面不兼容问题针对属性backface-visibility
- Android 正则表达式
- android Java BASE64编码和解码一:基础
- TCP/IP、Http、Socket的区别?
- view.performClick()触发点击事件
- 第一篇
- android res文件夹下面的 values-v11 、 values-v14
- 《算法导论》课后题--7--第四章(2)