zoukankan      html  css  js  c++  java
  • 转:JS中生成和解析JSON

    建议参考:

    w3c json教程 

    js数组与 json 的区别

     JSON 实例

    { 
        "employees": [ 
            { "firstName":"John" , "lastName":"Doe" }, 
            { "firstName":"Anna" , "lastName":"Smith" }, 
            { "firstName":"Peter" , "lastName":"Jones" } 
        ]     
    }                 

    原文地址:JS中生成和解析JSON

    1、JS中生成JSON对象的方法:

      var json = [];  数组保存多个对象

      var row1 = {};   单个对象

      row1.id= "1";

      row1.name = "jyy";

      var row2 = {id:'2',name:'abc'}

      json.push(row1);

      json.push(row2);

    2、JS中将JSON对象转换为json字符串的方法:

      var jsonStr = JSON.stringify(json);

    4、JS中Json字符串转换为JSON对象:

      1> JSON.parse(jsonstr); //可以将json字符串转换成json对象

      2> JS原生支持的转换方式: eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 

      3> jQuery  jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

    javasscript 添加/修改 对象属性的方法
      js中对象属性直接添加/修改
      例代码如下:

      var json = {}; // 如果json已经定义就跳过
      json[text1] = value1;
      json.text2 = value2;  // 此时text2必须符合变量名标准,否则得使用数组方式赋值

    javasscript删除对象属性的方法
      js中删除对象元素用delete操作符
      例代码如下:

      var p ={ "name": “chaomao”, "age":45, "sex":"male" };

      delete p.name

      for(var i in p){

        console.log(i);//输出age,sex,name项已经被删除了

      }

    javasscript json数组添加对象的方法
      js json数组添加对象用 push() 方法
      例代码如下:

      var json = [{"aa":"AAA"}]; 

      var data = {"bb":"BBB"}
      json.push(data);  

    javasscript删除数组的3种方法

      1,用shift()方法
      shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
      var chaomao=[1,2,3,4,5]
      var chaomao.shift()//得到1
      alert(chaomao)//[2,3,4,5]

      2,用pop()方法
      pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
      var chaomao=[1,2,3,4,5]
      var chaomao.pop()//得到5
      alert(chaomao)//[1,2,3,4]
      前面的方法只能操作数组开头和结尾,无法操作中间项,如果要操作中间的项,使用splice方法

      3,用splice方法
      这个方法很强大,可以对数组任意项进行增加,删除,替换操作 

      修改操作:
      var chaomao=[1,2,3,4,5]
      chaomao.splice(2,1,8,9)
      alert(chaomao)//1,2,8,9,4,5
      第一个参数是准备操作的数组位置,第二个参数是操作位置后面的数组项数,第三个以后的就是,被替换后的内容
      例子就是表示:从chaomao这个数组位置2开始(也就是值为3的那一项,数组下标从0开始的),位置2后的一项,替换成成8,9
      如果把第二个参数改为2,也就是chaomao.splice(2,2,8,9),也就是说位置2后面的两项换成8,9,打印出来的结果就是1,2,8,9,5,3和4这2两项被换掉了
      这里需要说明的是,被替换的项数不一定要和替换的项数相等,1项可以被换成3项,5项也可以被换成2项,基于这个原理,我们就用这个方法来对数组进行添加和删除操作

      删除操作:
      var chaomao=[1,2,3,4,5]
      chaomao.splice(2,1)
      alert(chaomao)//1,2,4,5
      上面例子中,把chaomao中的位置2后的1项替换成空的,因为后面没有内容,结果可以看到,把3这项删除了

      添加操作:
      var chaomao=[1,2,3,4,5]
      chaomao.splice(2,0,8,9)
      alert(chaomao)//1,2,8,9,3,4,5
      上面例子中,把chaomao中位置2后的0项换成8,9,也就等于添加了两项
      其实,删除和添加操作都只是splice修改方法的两种衍生罢了

     javascript里面的数组,json对象,动态添加,修改,删除示例 

    <!DOCTYPE html>
    <html>
        
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>javascript里面的数组,json对象,动态添加,修改,删除示例</title>
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
            <script type="text/javascript">
            var a = JSON.parse("{"title":"","data":[]}");
            var b = JSON.parse("{"id":"2"}");
            var c = JSON.parse("{"id":"3"}");
            var d = JSON.parse("{"id":"4"}");
            var e = JSON.parse("{"id":"5"}");
            var f = JSON.parse("{"id":"6"}");
    
            function myObjectPush() {
                debugger;
                /* javascript里面的数组,json对象,动态添加,修改,
    删除示例 只要适合Javascript的方法都是可以用在JSON对象的数组中的!
    所以还有另外的方法splice( )进行crud操作!
    */
                //增加属性
                $(a).attr("id", "1");
                //增加子对象
                a.data.push(b); //数组最后加一条记录
                a.data.push(c);
                a.data.push(d);
                a.data.unshift(d); //数组最前面加一条记录
                //修改子对象及属性
                a.title = "这是json名字";
                //删除子对象
                //json的删除有很多种,直接用过 delete json对象方式:
                delete a.data[1];
                a.data.pop(); //删除最后一项
                a.data.shift(); //删除第一项
                a.data.splice(0, 1); //删除指定子对象,参数:开始位置,删除个数
                //替换不删除
                a.data.splice(1, 0, e, f); //开始位置,删除个数,插入对象
                //替换并删除 a.data.splice(0, 1, e, f);//开始位置,删除个数,插入对象
            }
            </script>
        </head>
        
        <body onload="myObjectPush()"></body>
    
    </html>

    json 遍历

    json 数组遍历

    var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}]; 
    for(var o in data){  
        console.log(o);  
        console.log(data[o]);  
        console.log("text:"+data[o].name+" value:"+data[o].age );  
    }
    //或者
    for(var o=0;o<data.length;o++){ console.log(o); console.log(data[o]); console.log("text:"+data[o].name+" value:"+data[o].age ); }

    json 单个对象遍历

    var data={name:"a",age:12};
    for(var str in data){ 
        alert(str+'='+data[str]); 
    }

    JSON的key值为数字时如何使用

    根据键获取对应值的标准写法:

    var json = '{"a":"1", "b":"2"}';    
    var data = eval('('+ json +')');    
    alert(data.a);    
    alert(data['a']); 

    当键位数字时:

    var json = '{"0":"a", "1":"b", "age":2}';    
    var data = eval('(' + json + ')');    
    //alert(data.0);    //报错,此方式不可用    
    alert(data['0']);    
    alert(data[0]);    //注意此写法与数组用下标访问是相同的    
    alert(data.age)  
    alert(data['age'])
  • 相关阅读:
    C#调用java类、jar包方法
    利用IKVM在C#中调Java程序
    同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
    Python安装及开发环境配置
    jQuery EasyUI parser 的使用场景
    关于HttpURLConnection.setFollowRedirects
    HttpUrlConnection 的 setDoOutput 与 setDoInput
    【Mybatis】向MySql数据库插入千万记录 单条插入方式,用时 1h16m30s
    [MyBatis]再次向MySql一张表插入一千万条数据 批量插入 用时5m24s
    [MyBatis]向MySql数据库插入一千万条数据 批量插入用时6分 之前时隐时现的异常不见了
  • 原文地址:https://www.cnblogs.com/mumu122GIS/p/10280366.html
Copyright © 2011-2022 走看看