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。 每一天的坚持,每一天的收获,我与你同在!!
  • 相关阅读:
    Unix命令大全
    vs2008 与 IE8出现的兼容性问题
    Java 创建文件、文件夹以及临时文件
    如何修改Wamp中mysql默认空密码
    PAT 乙级真题 1003.数素数
    Tags support in htmlText flash as3
    DelphiXE4 FireMonkey 试玩记录,开发IOS应用 还是移植
    10 Great iphone App Review sites to Promote your Apps!
    HTML tags in textfield
    Delphi XE4 IOS 开发, "No eligible applications were found“
  • 原文地址:https://www.cnblogs.com/drubber/p/5757400.html
Copyright © 2011-2022 走看看