fastjsonfastjson怎样json转换成字符串
fastjson 时间:2021-07-30 阅读:(
)
fastjson怎么解析像“
1. fastjson生成和解析json数据
(举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)
2.通过一个android程序测试fastjson的用法。
fastjson简介:
Fastjson是一个Java语言编写的高性能功能完善的JSON库。
fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。
并且还超越了google的二进制协议protocol buf。
Fastjson完全支持的标准,也是官方网站收录的参考实现之一。
支持各种JDK类型。
包括基本类型、JavaBean、Collection、Map、Enum、泛型等。
支持JDK 5、JDK 6、Android、阿里云手机等环境。
一. fastjson生成json字符串(JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)
String jsonStrng = JSON.toJSONString(object);
二. 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.0Fastjson究竟有多快
Fastjson超越了protobuf,可以当之无愧fast! 它比java deserialize快超过30多倍,比json-lib快100倍。
由于Fastjson的存在,你可以放心使用json统一协议,达到文本协议的可维护性,二进制协议的性能。
JSON处理主要包括两个部分,serialize和deserialize。
serialize就是把Java对象变成JSON String或者JSON Bytes。
Deserialize是把JSON String或者Json Bytes变成java对象。
其实这个过程有些JSON库是分三部分的,json string <--> json tree <--> java object。
Fastjson也支持这种转换方式,但是这种转换方式因为有多余的步骤,性能不好,不推荐使用。
fastjson是怎么实现JSON的序列化和反序列化的
反序列化函数
· parseObject
-将 json字符串 反序列化为 java.class
@sherineZJU
List<T> temp= JSON.parseObject(fastjson,T.class);
//transform the json to T123123
-fastjson 为 json格式的字符串(String类型)
-T 为 与 json格式对应的 自定义 java.class。
· parseObject
-将 json字符串 反序列化为 java.util.List
@sherineZJU
List<T> oldk = JSONArray.parseArray(fastjson,T.class);
//transform the json to List<T>123123
-fastjson 为 json格式的字符串(String类型)
-List< T> 为 与 json格式对应的 自定义 java.util.List。
java.class 与 json字符串 的对应关系
注意 json字符串 的关键字一定要与 java.class 中的对应变量名相同。
fastjson怎样json转换成字符串
// jackson
private static ObjectMapper om = new ObjectMapper ();
public static String objectToString (Object obj ) throws IOException{
return om.writeValueAsString (obj );
}
@Test
public void test1 () throws IOException {
Map<String, Object> map = new HashMap<String, Object>();
Map<String, String> map2 = new HashMap<String, String>();
map2.put ("name", "1");
map2.put ("age", "12");
map.put ("att", map2 );
List<String> list = new ArrayList<String>();
list.add ("hi");list.add ("hello");
map.put ("list", list );
List<Map<String, String>> confuselist = new ArrayList<Map<String, String>>();
Map<String, String> map3 = new HashMap<String, String>();
map3.put ("name", "1");
map3.put ("age", "12");
confuselist.add (map3 );
confuselist.add (map2 );
map.put ("confuselist", confuselist );
Object array = Array.newInstance (String.class, 10 );
Array.set (array, 0, "a");
Array.set (array, 1, "b");
Array.set (array, 2, "c");
map.put ("array", array );
// 使用 jackson
System.out.println (objectToString (map ));
// 使用 fastJson
System.out.println (JSON.toJSONString (map ));
}
输出:
{"att":{"age":"12","name":"1"},"list":["hi","hello"],"confuselist":[{"age":"12","name":"1"}, {"age":"12","name":"1"}],"array":["a","b","c",null,null,null,null,null,null,null]}
{"att":{"age":"12","name":"1"},"list":["hi","hello"],"confuselist":[{"age":"12","name":"1"},{"$ref":"$.att"}],"array":["a","b","c",null,null,null,null,null,null,null]}
企鹅小屋怎么样?企鹅小屋最近针对自己的美国cn2 gia套餐推出了2个优惠码:月付7折和年付6折,独享CPU,100%性能,三网回程CN2 GIA网络,100Mbps峰值带宽,用完优惠码1G内存套餐是年付240元,线路方面三网回程CN2 GIA。如果新购IP不能正常使用,请在开通时间60分钟内工单VPS技术部门更换正常IP;特价主机不支持退款。点击进入:企鹅小屋官网地址企鹅小屋优惠码:年付6折优惠...
hostslim美国独立日活动正在进行中,针对一款大硬盘荷兰专用服务器:双E5-2620v2/4x 1TB SATA硬盘,活动价60美元月。HostSlim荷兰服务器允许大人内容,不过只支持电汇、信用卡和比特币付款,商家支持7天内退款保证,有需要欧洲服务器的可以入手试试,记得注册的时候选择中国,这样不用交20%的税。hostslim怎么样?HostSlim是一家成立于2008年的荷兰托管服务器商,...
zji怎么样?zji是一家老牌国人主机商家,公司开办在香港,这个平台主要销售独立服务器业务,和hostkvm是同一样,两个平台销售的产品类别不一平,商家的技术非常不错,机器非常稳定。昨天收到商家的优惠推送,目前针对香港邦联四型推出了65折优惠BGP线路服务器,性价比非常不错,有需要香港独立服务器的朋友可以入手,非常适合做站。zji优惠码:月付/年付优惠码:zji 物理服务器/VDS/虚拟主机空间订...
fastjson为你推荐
常用软件开发工具java编程常用的软件有哪些安卓系统软件删除安卓手机怎么卸载已经安装的各类软件?excel2003官方Microsoft Office Excel 2003怎么下载msn邮箱后缀MSN可加哪几种后缀的email?windowsphone手机谁能给说说微软Windows phone 手机啊?智能公共广播系统公共广播系统的品牌都有哪些??云图好看吗云图这部电影好看吗500人同时满足500人在线的性能测试jmeter怎么设置线程和并发数买卖论坛请推荐几个二手手机论坛,越多越好计算机编程基础计算机编程需要什么基础?
虚拟主机99idc 132邮箱 国内免备案主机 主机 godaddy 嘟牛 cpanel空间 日本bb瘦 柚子舍官网 双11秒杀 广州服务器 中国网通测速 ftp免费空间 如何安装服务器系统 双线asp空间 华为k3 hdchina apachetomcat qq空间打开很慢 paypal登陆 更多