Json数据格式

一.什么是json

json是一种与语言无关的数据交换的格式,作用:
使用ajax进行前后台数据交换
移动端与服务端的数据交换

二.json的使用

json有两种格式:

1)对象格式:{"key1":obj,"key2":obj,"key3":obj...}
2)数组/集合格式:[obj,obj,obj...]

例如:user对象 用json数据格式表示

{"username":"zhangsan","age":28,"password":"123","addr":"北京"}

List 用json数据格式表示

[{"pid":"10","pname":"小米4C"},{},{}]

注意:对象格式和数组格式可以互相嵌套

注意:json的key是字符串 jaon的value是Object

三.json的解析:

json是js的原生内容,也就意味着js可以直接取出json对象中的数据
例如 案例一:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>json01</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>
  <body>
       <ul>
		 <li id="bj" name="beijing">北京</li>
	   </ul>
  </body>
  
  <script language="JavaScript">
	/**
	 * 案例一
	 *  {key:value,key:value}
	 *  
	 * class Person{
	 * 	  String firstname = "张";
	 *    String lastname = "三丰";
	 *    Integer age = 100;
	 * }
	 * 
	 * Person p = new Person();
	 * System.out.println(p.firstname);
	 */
	
	var person = {"firstname":"张","lastname":"三丰","age":100};
	 
	 //取出lastname
	 alert(person.lastname);
	 //取出age
	 alert(person.age);
	
	

  </script>
</html>

案例二:

 <script language="JavaScript">
  	/**
	 * 案例二
	 *  [{key:value,key:value},{key:value,key:value}]
	 *  
	 */
	 
	 var persons = [
	                	{"firstname":"张","lastname":"三丰","age":100},
	                	{"firstname":"李","lastname":"四","age":25}
	                ];
	 
	//取出 firstname=李
	alert(persons[1].firstname);
	//取100
	alert(persons[0].age);
  	
  	
  </script>

案例三:

  <script language="JavaScript">
   /**
	 * 案例三
	 * {
	 *   "param":[{key:value,key:value},{key:value,key:value}]
	 * }
	 *  
	 *  
	 */
	 
	 var json = {
			 		"baobao":[
			 		          	{"name":"小双","age":28,"addr":"扬州"},
			 		          	{"name":"建宁","age":18,"addr":"紫禁城"},
			 		          	{"name":"阿珂","age":10,"addr":"山西"},
			 		          ]
			 	};
	
	 //娶name = 建宁
	 alert(json.baobao[1].name);
	 
	 //取addr 山西
	 alert(json.baobao[2].addr);
	
  </script>

案例四:

  <script language="JavaScript">
   /**
	 * 案例四
	 * {
	 *   "param1":[{key:value,key:value},{key:value,key:value}],
	 *   "param2":[{key:value,key:value},{key:value,key:value}],
	 *   "param3":[{key:value,key:value},{key:value,key:value}]
	 * }
	 *  
	 *  
	 */
	 var json = {
		 			"baobao":[
			 		          	{"name":"小双","age":28,"addr":"扬州"},
			 		          	{"name":"建宁","age":18,"addr":"紫禁城"},
			 		          	{"name":"阿珂","age":10,"addr":"山西"},
		 		          	],
		 		     "haohao":[
			 		          	{"name":"张爽","age":25,"addr":"吉林"},
			 		          	{"name":"舒洁","age":23,"addr":"赤峰"}
				 		      ]
		 		};
	 
	alert(json.haohao[1].name);
	 
  </script>

案例五:

  <script language="JavaScript">
 	/**
	 * 案例五
	 * {
	 *   "param1":"value1",
	 *   "param2":{},
	 *   "param3":[{key:value,key:value},{key:value,key:value}]
	 * }
	 *  
	 *  
	 */
	 
	 var json = {
			"key1":"value1",
			"key2":{"firstname":"张","lastname":"三丰","age":100},
			"key3":[
 		          	{"name":"小双","age":28,"addr":"扬州"},
 		          	{"name":"建宁","age":18,"addr":"紫禁城"},
 		          	{"name":"阿珂","age":10,"addr":"山西"},
 		          ]
	 };
	 
	 alert(json.key2.lastname);
	 
	 alert(json.key3[2].name);
  </script>

四.Json的转换插件

将java的对象或集合转成json形式字符串

json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串。
常用的json转换工具有如下几种:
1)jsonlib
2)Gson:google
3)fastjson:阿里巴巴

例如:使用gson-2.2.4.jar

Gson gson = new Gson();
String json = gson.toJson(productList);
System.out.println(json);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(json);

gson.toJson(object)能将任何类型的对象转为json字符串

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值