在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。
我在网上看了一些开源的JSON框架,比如Google提供的Gson,Jackson,FastJson等框架。
经过测试,个人觉得FastJson执行效率比较高,而且简单易用。
FastJson不依赖于第三方包, 直接可以运行在Java JDK1.5之上,FastJson完全支持http://json.org的标准,支持各种JDK类型,包括基本类型、JavaBean、Collection、Map、Enum、泛型等
还支持循环引用。
FastJson项目是开源的:Fastjson代码托管在github.org上,项目地址是 https://github.com/AlibabaTech/fastjson
一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。
一。简单的序列化
pubic class UserInfo implements Serializable{ private String name; private int age; public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setAge(int age){ this.age=age; } public int getAge(){ return age; } } public class TestOne{ public static void main(String[] args){ UserInfo info=new UserInfo(); info.setName("zhangsan"); info.setAge(24); //将对象转换为JSON字符串 String str_json=JSON.toJSONString(info); System.out.println("JSON="+str_json); } }
二.复杂的数据类型
public static void test2() { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("username", "zhangsan"); map.put("age", 24); map.put("sex", "男"); //map集合 HashMap<String, Object> temp = new HashMap<String, Object>(); temp.put("name", "xiaohong"); temp.put("age", "23"); map.put("girlInfo", temp); //list集合 List<String> list = new ArrayList<String>(); list.add("爬山"); list.add("骑车"); list.add("旅游"); map.put("hobby", list); /*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String jsonString = JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);] *fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。 */ String jsonString = JSON.toJSONString(map); System.out.println("JSON=" + jsonString); }
三.反序列化
public void test3(){ String json="{\"name\":\"chenggang\",\"age\":24}"; //反序列化 UserInfo userInfo=JSON.parseObject(json,UserInfo.class); System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge()); } /**泛型的反序列化*/ public static void test4(){ String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}"; Map<String, UserInfoBean> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfoBean>>(){}); System.out.println(map.get("user")); }
//同理, json字符串中可以嵌套各种数据类型。
四.日期格式化
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)); }
这里举了几个简单的例子, 其它特殊要求可以根据FastJson的方法的说明,进行选择。
来自:http://blog.csdn.net/yuanjian19900610/article/details/37737087
相关推荐
简单的fastjson使用,包括序列化和反序列化
碎片及fastjson简单应用
Gson和Fastjson 的简单使用
C#简单快速的json组件fastJSON使用介绍.docx
gson,fastjson,jackson的简单使用
fastjson 的一个小例子,里面是我博客中的代码, http://blog.csdn.net/yunxiaoxiaoyun/article/details/16811973
Java处理JSON数据有三个比较流行的类库FastJSON、Gson和Jackson。本文将测试这三个类库在JSON序列化和反序列化的方面表现,主要测试JSON序列化和反序列化的速度。为了防止由于内存导致测试结果出现偏差,测试中对JVM...
fastjson.jar 支持大量的json 数据转换,速度快。用法简单,解压之后即可使用
阿里巴巴开源包,fastjson的基础入门。 这里介绍 fastjson 用于生成和解析 JSON 数据的简单示例
fastjson-1.2.80和简单工具类,用来学习jsonpath,目前使用的是fastjson1.0版本而不是2.0版本。
Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。在默认配置下,当应用或系统用Fastjson对由用户可控的JSON字符串进行解析时,将可能导致远程代码执行的危害。...
啊里巴巴FastJson jar包 里面也有相关的使用介绍 代码示例 简单说明等等
android原生操作json数据 主要是两个类 JSONObject 操作对象 JONSArray操作json数组 对象转json //创建学生对象 Student student=new Student(); student.setAge(23); student.setClazz(六年级);...
Fastjson是一个Java语言编写的高性能功能完善的JSON库。将解析json的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出等多种应用场景。
阿里巴巴的一款java解析json的jar包,fastjson,方便简单实用!
json解析在android开发中是非常,常见的fastjson是阿里巴巴的一个库,对于json开发效率很高,我写了一个简单例子
FastJson是阿里巴巴工程师开发的一个json处理工具包,包括“序列化”和“反序列化”两部分。支持Java Bean、集合、Map、日期等等。我这是用fastjson解析json串一个简单的案例。
JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址 2.FastJson的特点: 1.FastJson数度快,无论序列化和反...
JSON.parseObject(String str)用于解析json格式的字符串,方便,简单
fastjson1.2.4的jar包,java解析json的jar包,方便简单实用!内含源码和jar包哦!