什么是JSON
•JSON是JavaScript Object Notation的简写,是结构化数据串行化的文本格式
•JSON是一种轻量级的数据交换格式。作为XML的一种替代品,是一种用于客户端与服务器之间进行数据交换的预定义格式
•JSON能够描述四种简单的类型(字符串、数字、布尔值及null)和两种结构化类型(对象及数组)
JSON语法
•JSON建构于两种结构:
–"名称/值"对的集合。不同的语言中,它被理解为对象,记录,结构,字典,哈希表,有键列表,或者关联数组。
–值的有序列表。在大部分语言中,它被理解为数组。
•JSON对象是一个无序的"名称/值"对的集合。一个对象以"{" (左大括号)开始, "} " (右大括号)结束。每个"名称"后跟一个":" (冒号); "名称/值"对之间使用", " (逗号)分隔,如:
–var student = {"name" : "zhangsan", "age" : 23, "address" : "changsha"};
•数组是值的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔,如
–var studentList = {"studentArray" :[
{"name" : "zhangsan", "age" : 23, "address" : "changsha"},
{"name" : "lisi", "age" : 22, "address" : "changsha"},
{"name" : "wangwu", "age" : 25, "address" : "changsha"}]};
•名称是一个字符串,值字符串、数值、 ture、false、 null、对象或者数组。这些结构可以嵌套
JSON的对象
•对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。
JSON的值
•值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
JSON在JS中的用法
•引入json2.js包
–<script type="text/javascript" src="json2.js" ></script>
•将JSON对象转换成字符串:
–var jsonStr = JSON.stringify(jsonObject);
•将字符串转换成JSON对象:
–var jsonObj = JSON.parse(string);
JSON在JAVA中的用法
•导入相关的包
–json-lib-2.2.2-jdk15.jar
–ezmorph-1.0.5.jar
–commons-lang-2.3.jar
–commons-collections-3.2.jar
–commons-beanutils-1.7.0.jar
–commons-logging-1.1.1.jar
•将JSON字符串转换成VO对象:
–JSONObject obj = JSONObject.fromObject(string);
–Employee emp = (Employee) JSONObject.toBean(jsonObj, Employee.class);
•将VO对象转换成JSON字符串:
–JSONObject strJson = JSONObject.fromObject(emp);
–strJson.toString();
•从JSONObject对象中获取数据:
–JSONObject obj = JSONObject.fromObject(string);
–String empName = obj.getString("empName");
–int empNo = obj.getInt("empNo");
–double sal = obj.getDouble("sal");
–long comm = obj.getLong("comm");
•
往JSONObject对象中添加数据:
–JSONObject obj = new JSONObject();
–obj.element("empName", "Zhao Yun");
–obj.element("empNo", 1234);
–obj.element("sal", 2500.5D);
–obj.element("comm", 500L);
–obj.element("marriage", false);
–obj.toString();
–boolean marriage = obj.getBoolean(“marriage");