JSON基本用法
JSON基本用法
2016-08-10 16:42:19
JSON的全称是“JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。类似Java中的List,Map等。 XML也是一种数据交换格式,但为什么没有选择XML呢? 因为XML虽然可以作为跨平台的数据交换格式,但是在JS中处理XML非常不方便,同时XML标记比数据还多,增加了交换数据产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。
如下,清晰的看到JSON内部和XML内部
JSON:
1 { 2 key1:value1, 3 key2:value2, 4 …… 5 }
XML:
1 <CATALOG> 2 <PLANT> 3 <COMMON>Bloodroot</COMMON> 4 <ZONE>4</ZONE> 5 …… 6 <PLANT> 7 …… 8 <CATALOG>
JSON的两种基础结构
对象和数组 是JSON的两种基础结构
- 对象机构以“{”开始,以“}”结束。中间部分由0或者n个以”,“分隔的‘键值对’ key(关键字):value(值)构成。语法结构如下:
{ key1:value1, key2:value2, …… }
其中关键字是字符串,值可以是字符串、数值、true、false、null、对象和数组
- 数据结构以“[”开始,“]”结束。中间由0或n个以“,”分隔的值列表组成,语法结构如下
[ { key1:value1, key2:value2 }, { key3:value3, key4:value4 } ]
认识JSON字符串,字符串,JSON对象
JSON字符串:顾名思义json形式的字符串,既符合json格式要求的js字符串。如:var jsonStr = "{id:-123,name:'drubber'}";
JSON对象:指符合json格式要求的js对象。如:var jsonObj = {id:'123',name:'drubber'};
JSON字符串和JSON对象的转换
JSON字符串转化为JSON对象
1 //JSON字符串转化为JSON对象 2 var jsonStr = '{"name":"drubber.com", "password":"222"}'; 3 var jsonObj = eval('('+jsonStr+')');
JSON对象转化为JSON字符串
1 //JSON字符串转化为JSON对象 2 var jsonStr = '{"name":"drubber.com", "password":"222"}'; 3 var jsonObj = eval('('+jsonStr+')'); 4 var jsonStr2 = JSON.stringify(jsonObj);
在JS中如何使用JSON
JSON是JS的一个子集,所以可以在JS中轻松的读写JSON。读和写JSON都有两种方法,分别是“.”和“[key]”的方式。
我们首先定义一个JSON对象,代码如下:
1 var obj = { 2 1:"value1", 3 "2":"value2", 4 sum:3, 5 people:[ 6 { 7 "name":"zhangsan", 8 "sex":"gril" 9 }, 10 { 11 "name":"lisi", 12 "sex":"boy" 13 } 14 ], 15 objJson:{ 16 id:1, 17 name:"json" 18 } 19 };
从JSON中读数据
1 //alert(obj.1+"***"+obj[1]); 2 //alert(obj.2);//同上,会报错,说明最好不用数字做关键字 3 alert(obj["2"]); 4 alert(obj.sum); 5 6 alert(obj.people[0].name +"***"+obj["people"][0]["name"]);
往JSON中写数据和修改数据(两者是一样的)
1 //JSON写入数据 2 obj.test = "test";
删除JSON中的数据
1 //删除JSON数据 2 delete obj.test;
遍历JSON对象
1 //遍历JSON对象 2 for(var i in obj){ 3 console.log(i + ":",obj[i]); 4 }
JSON数组的操作
1、JSON数组中添加JSON对象
objArray.push(obj.objJson);
2、JSON数组删除数据,修改和添加
(1)删除第一个对象
objArray.shift();
(2)删除最后一个对象
objArray.pop(); (3) .splice(start, deletecount, items1,items2……) 从start位置开始的deletecount个对象替换为items1,items2……;
数组的下标从0开始; 此方法可以删除,添加,修改对象。
3、JSON数组的遍历
(1)原生js遍历JSON数组
1 //遍历JSON数组 2 var peopleArray = obj.people; 3 for(var i=0;i<peopleArray.length;i++){ 4 debugger 5 console.log(i + ":",peopleArray[i]); 6 }
(2)Jquery方法each遍历JSON数组1 var peopleArray = obj.people; 2 $.each(peopleArray,function(i,value){ 3 console.log(i + ":",value); 4 });
在java语言中使用JSON
web页面提交json到后台
为避免乱码需要做如下处理
url:"/regist.htm?registInfo="+encodeURI(encodeURI(JSON.stringify(jsonObject))),
相应的java代码为
String paString = URLDecoder.decode(request.getParameter("parm"), "utf-8")
转载自:http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html
lift is made up of small pleasures.
生活是由各种微小的幸福构成。
日积月累,就会产生意想不到的Miracles。
每一天的坚持,每一天的收获,我与你同在!!