Json数据交互格式介绍和比较
1、什么是数据交互格式?
就是客户端和服务端进行信息传输的格式(xml和json),双方约定用什么格式进行传输,然后解析得到自己想要的值
xml扩展标记语言,属于重量级(第一占宽带、第二解析难)
json属于轻量级的数据交互格式(不占宽带,解析很简单)
2、xml和json优缺点
xml优点:格式统一,符合标准;容易与其它系统进行远程交互,数据共享比较方便
xml缺点:xml文件庞大,文件格式复杂,传输占宽带;
服务器和客户短需要话费大量代码来解析xml,导致服务器和客户端代码变得异常复杂且不易维护;
客户端不同浏览器之间解析xml的方式不一致,需要重复编写很多代码;
服务器和客户端解析xml花费很多的资源和时间
json优点:数据格式比较简单,易于读写,格式都是压缩的,占用宽带小;
易于解析;
支持多种语言,便于服务器的解析;
fastjson和jackson可以将json数据和对象互转
json格式能直接为服务器代码使用,大大简化了服务器和客户端的代码开发量,并且易于维护
json缺点:json格式目前在Web Service中推广还属于初级阶段
3、创建json格式数据
package com.cppdy; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSONObject; public class JsonTest { public static void main(String[] args) { JSONObject contry=new JSONObject(); JSONObject province1=new JSONObject(); JSONObject province2=new JSONObject(); List<String> cityList1=new ArrayList<String>(); List<String> cityList2=new ArrayList<String>(); List<JSONObject> provinceList=new ArrayList<JSONObject>(); cityList1.add("广州"); cityList1.add("佛山"); cityList1.add("深圳"); province1.put("name", "广东"); province1.put("citys", cityList1); cityList2.add("南京"); cityList2.add("苏州"); cityList2.add("无锡"); province2.put("name", "江苏"); province2.put("citys", cityList2); provinceList.add(province1); provinceList.add(province2); contry.put("name", "中国"); contry.put("provinces", provinceList); System.out.println(contry.toJSONString()); } }