zoukankan      html  css  js  c++  java
  • 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。 每一天的坚持,每一天的收获,我与你同在!!
  • 相关阅读:
    本地图文直接复制到文本编辑器中
    本地图文直接复制到富文本编辑器中
    本地多张图片直接复制到富文本编辑器中
    能粘贴Word 内容(含图片)的富文本编辑器
    能粘贴Word 内容(含图片)的文本编辑器
    js+WebUploader分片上传大文件
    js+web分片上传大文件
    js+前端分片上传大文件
    Java学习——方法中传递参数分简单类型与复杂类型(引用类型)
    线段树练习
  • 原文地址:https://www.cnblogs.com/drubber/p/5757400.html
Copyright © 2011-2022 走看看