一、Json简介
JSON是JavaScript对象表示法,是一种与语言无关的数据交换的格式,是一种完全独立于语言的文本格式。
使用ajax进行前后台数据交换,移动端与服务端的数据交换。
web客户端和服务器通过AJAX(HTTP REQUEST)进行数据交换,而JSON是AJAX中最常用的数据格式;
二、JSON与XML的区别
① 类似XML,比XML更小、更快、更用以解析。
② 没有结束标签
③ 更短
④ 读写书读更快
⑤ 使用数组
⑥ 不使用保留字
三、基本数据类型
1)String:"" "字符串"
2)Number:100 200 54.2
3)Boolean:true false
4)Null
四、Json语法格式
1)对象格式:{"key1":obj,"key2":obj,"key3":obj...}
2)数组/集合格式:[obj,obj,obj...]
对象格式和数组格式可以互相嵌套,一个对象中的一个属性可以是一个集合或数组
1 //对象:{}允许为空 2 {"name":"siki1","age":20,"sex":"男"}, 3 //数组:[]允许为空 4 [ 100,200,320,400,600 ] 5 //数组可以存储对象 6 [ 7 {"name":"Cyan","age":20,"sex":"男"}, 8 {"name":"TGN-e","age":18,"sex":"女"}, 9 {"name":"MJL-in","age":19,"sex":"男"}, 10 ]
五、fastjson:文档介绍
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
六、fastjson优点
1)速度快:fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越
2)使用广泛:fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。
3)测试完备:fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。
4)使用简单:fastjson的API十分简洁
序列化:String text = JSON.toJSONString(obj); 反序列化:Vo vo = JSON.parseObject("{...}",VO.class);
5)功能完备:支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。
1 // 序列化 持久化 2 // Goods goods = new Goods("banner", "YcBanner", 100, 400); 3 // String json = JSON.toJSONString(goods); 4 // System.out.println(json); 5 6 // 反序列化(解析) 7 // String s = "{"des":"YcBanner","inventory":400,"name":"banner","price":100}"; 8 // Goods goods = JSON.parseObject(s,Goods.class); 9 // System.out.println(goods.getDes()); 10 // System.out.println(goods.getInventory()); 11 // System.out.println(goods.getName()); 12 // System.out.println(goods.getPrice()); 13 14 String s = "[{" + ""name":"MJL"," + ""age":"20"," + ""sex":"男"}," 15 + "{" + ""name":"TGN"," + ""age":"19"," + ""sex":"女"}," 16 + "{" + ""name":"青鸟"," + ""age":"30"," + ""sex":"男"}]"; 17 List<UserTest> list = JSON.parseArray(s, UserTest.class); 18 for (UserTest ut : list) { 19 System.out.println(ut); 20 }