json2.js處理javascript json資料__js

來源:互聯網
上載者:User

轉載:http://hi.baidu.com/oemghcxtfhbainq/item/d6f18edbba4f7211e1f46f6c

JSON2的使用方法心得

JSON2的使用方法心得


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的不同):
<%@ page language="java" pageEncoding="UTF-8"%>
<!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對象的增刪查改操作
<%@ page language="java" pageEncoding="UTF-8"%>
<!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> 轉載: http://hi.baidu.com/oemghcxtfhbainq/item/d6f18edbba4f7211e1f46f6c

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.