欢迎来到农夫的博客

半亩方塘一鉴开, 天光云影共徘徊。 问渠哪得清如许? 为有源头活水来!

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 

posted on 2016-08-10 23:23  allTime  阅读(320)  评论(0编辑  收藏  举报

导航