• json2.js 示例


    json2.js的初步学习与了解

    1.)该js的下载地址是:http://www.json.org/json2.js

    2.)在页面中引用该脚本:<script type="text/javascript" src="js/json2.js"></script>

    3.)示例演示一:
    //直接声明json数据结构

    var myJSONObject = {"bindings": [ 
            {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, 
            {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, 
            {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} 
        ] 
    };

    这个例子中,创建了一个对象,它只包含一个成员“bindings”。“bindings”是一个包含了3个对象的数组,而这每个对象都有"ircEvent"、"method"和"regex"3个成员。

    这些成员可以用“.”或subscript 操作得到。如:

    myJSONObject.bindings[0].method    // "newURI"
        myJSONObject.bindings[1].deleteURI    // "newURI"

    //声明字符串,可对比一下json文本与我们正常文本的区别 

    var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]'; 
    var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';

    我们可以使用eval()函数调用JavaScript的编译器把JSON文本转变成对象。因为JSON是JavaScript的一个确切的子集,编译器可以正确地解析JSON文本,然后生成一个对象结构。

    //调用eval函数转换为json对象,

    var myE = eval(normalstring);

    //将json对象转换为字符串 

    var text = JSON.stringify(myE);

    //对比转换后的json文本与声明的文本区别 

    document.writeln('转换后的json文本:'+text+'<br><br>声明的json格式文本 '+jsontext+'<br><br>声明的普通格式文本 '+normalstring+'<br><br>');

    结果如下:

    转换后的json文本:[{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]

    声明的json格式文本 [{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]

    声明的普通格式文本 [{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]

    小结:转换后的json文本和声明的json格式文本内容是相同的。

    //当安全比较重要的时候使用JSON解析就好一些。JSON解析只会识别JSON文本并且它更安全,下面调用json的parse函数对文本数据转换生成json数据结构

    var myData = JSON.parse(jsontext);

    完整的文件如下(区别:myJSONObject,jsontext,normalstring的不同):

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
       <script type="text/javascript" src="js/json2.js"></script>
    </head>
    
    <body>
       <script>
           var normalstring = '[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
           var jsontext = '[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
           var myJSONObject = { "bindings": [
              { "ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*" },
              { "ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*" },
              { "ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*" }
           ]
           };
    
           //调用eval函数转换为json对象, 
           var myE = eval(normalstring);
    
           //将json对象转换为字符串 
           var text = JSON.stringify(myE);
    
           //对比转换后的json文本与声明的文本区别 
           document.writeln('转换后的json文本:' + text + '<br><br>声明的json格式文本 ' + jsontext + '<br><br>声明的普通格式文本 ' + normalstring + '<br><br>');
    
           //JSON解析
           var myData = JSON.parse(jsontext);
       </script>
    </body>
    </html>

    4.)示例演示二:

    //下面是对json对象的增删查改操作

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
       <script type="text/javascript" src="js/json2.js"></script>
    </head>
    
    <body>
       <script>
           //声明json对象
           var jsonObj2 = { persons: [
         { name: "jordan", sex: "m", age: "40" },
         { name: "bryant", sex: "m", age: "28" },
         { name: "McGrady", sex: "m", age: "27" }
        ]
           };
           var persons = jsonObj2.persons;
           var str = "";
           var person = { name: "yaoMing", sex: "m", age: "26" };
    
           //以下为json对象的操作,去掉注释可以查看操作结果 
           jsonObj2.persons.push(person); //数组最后加一条记录 
           jsonObj2.persons.pop(); //删除最后一项 
           jsonObj2.persons.shift(); //删除第一项 
           jsonObj2.persons.unshift(person); //数组最前面加一条记录 只要适合Javascript的方法都是可以用在JSON对象的数组中的!所以还有另外的方法splice( )进行crud操作! //删除 
           jsonObj2.persons.splice(0, 2); //开始位置,删除个数 
    
           //替换不删除 
           var self = { name: "tom", sex: "m", age: "24" };
           var brother = { name: "Mike", sex: "m", age: "29" };
           jsonObj2.persons.splice(1, 0, self, brother, self); //开始位置,删除个数,插入对象 
    
           //替换并删除 
           jsonObj2.persons.splice(0, 1, self, brother); //开始位置,删除个数,插入对象
    
           for (var i = 0; i < persons.length; i++) {
               var cur_person = persons[i];
               str += cur_person.name + "'sex is " + cur_person.sex + " and age is " + cur_person.age + "<br><br>";
           }
           document.writeln(str);
           //转换为json文本 
           var myjsonobj = JSON.stringify(jsonObj2);
           document.writeln(myjsonobj);
    
           document.writeln(persons.length);
    
       </script>
    </body>
    </html>

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    《学习之道》第十章方法空间能力是可以后天形成的
    《学习之道》第十章总结
    《学习之道》第十章视觉和空间记忆的原因
    数据结构之链表:双指针问题
    单例模式
    Java的锁
    Python锁
    排序算法小结
    命中索引
    反射
  • 原文地址:https://www.cnblogs.com/yeminglong/p/2993878.html
Copyright © 2020-2023  润新知