FastJson简单使用
在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用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的方法的说明,进行选择。
FastJson简单使用相关推荐
- FastJson 简单使用
对象.List转Json User user = new User(); /*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String ...
- FastJson简单应用
把对象或者数组转化成json字符串: public static String createJsonString(Object value) { String alibabaJson = JSON.t ...
- android fastjson漏洞_亲手带你 Debug Fastjson 的安全漏洞
简介 Java处理JSON数据有三个比较流行的类库,gson(google维护).jackson.以及今天的主角fastjson,fastjson是阿里巴巴一个开源的json相关的java libra ...
- Struts2.0第三章(文件上传、ajax开发、json、Fastjson、Jackson、注解开发)
Struts2.0文件上传: 浏览器端注意事项: 1.表单提交方式method = post: 2.表单中必须有一个<input type="file" name = &qu ...
- Fastjson反序列化
Fastjson反序列化 0x00 前言 fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSO ...
- android retrofit入门,Android开发 retrofit入门讲解
前言 retrofit基于okhttp封装的网络请求框架,网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装.如果你不了解OKhttp建议你还是先了解它在来学习 ...
- 企业spark案例 —— 出租车轨迹分析(2)
任务描述 本关任务:使用SparkSQL完成数据分析. 相关知识 为了完成本关任务,你需要掌握:如何使用SparkSQL进行数据分析 FastJson 简述 JSON 协议使用方便,越来越流行,JSO ...
- Google Gson
JackSon简单用法 FastJson简单用法 一.Gson介绍 1.什么是Gson Gson 是 Google 开发的Java API,是一个简单基于Java的开源库,可以相互转换J ...
- Java_OAexp工具设计及实现 | Thelostworld_OA
本文主要介绍基于JavaFX图形化界面开发的快速OA类利用工具.笔者收集和整理了目前工具的OA类验证及其利用的方式和方法,整合成一个方便快捷图形化的快速利用工具. 想要写这个工具的原因,主要是日常工作 ...
最新文章
- 2021年大数据Hive(八):Hive自定义函数
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
- Swift:在Safari中打开App
- linux文件显示程序,Linux下文件显示命令简介
- 自动化测试工具selenium python_自动化测试工具之Selenium(一)-----Selenium的介绍以及安装...
- Linux fork()函数底层CopyOnWrite写时复制实现原理剖析
- Java 23种设计模式案例:原则及分类
- Python3解析XML文件(xml.etree.ElementTree)——以简单网络爬虫为例
- FPGA存储器DDR5简介
- 智慧讲台接收画板协议规划
- JavaScript的高大强
- 程序员眼中的统计学(3)】概率计算:把握机会
- Webstorm中文乱码的问题
- php 开启 ziparchive,php ZipArchive类使用实例详解
- 环境影响评价期末复习
- 小众软件android,七款优秀的小众软件,每款都是装逼神器!
- python写完后打不开门_感觉自己python已经入门了,为什么还是没法用Python写好程序?...
- 欧文分校的计算机科学博士,2020年加州大学欧文分校博士含金量
- python毫秒级别抢购_Python 实现毫秒级淘宝抢购脚本
- 基础(一):SCSI硬盘与IDE硬盘有什么区别