Js讀取json數據 && 循環讀取JSON數據

jopen 10年前發布 | 23K 次閱讀 JSON JavaScript開發

服務端向客戶端返回了一串JSON格式的數據。在有些時候,因為某些特殊的原因我們不知道原始的key值,因此我們此時無法象正常一樣通過key值,來獲取value值。這時我們必須循環讀取JSON對象數據。廢話少說,來看例子。 

        服務端后臺返回到客戶端的JSON格式字符串:var str = '[{"uname":"王強","day":"2010/06/17"},{"uname":"王海云","day":"2010/06/11"}]';  

        我們把它轉換成JSON對象:var jsonList=eval("("+str+")");這時候如果以用斷點跟蹤查看這個jsonList對象,其實你會發現,他的長度為2,即 jsonList.length=2。它的每一項都是一個單獨的JSON對象。請看下圖:     

 Js讀取json數據 && 循環讀取JSON數據

        這時候假設我們不知道"uname"和"day"這兩個key值,我們開始對jsonList執行循環操作。 

        for(var i=0;i

                 for(var key in jsonList[i]){

                 alert("key:"+key+",value:"+jsonList[i][key]); 

        } 

         }

        這樣我們就可以輕松的獲取我所需要的key值和value值了

 

js 中讀取JSON的方法探討

js讀取JSON的方法我接觸到的有兩種:
方法一:函數構造定義法返回
var strJSON = "{name:'json name'}";//得到的JSON
var obj = new Function("return" + strJSON)();//轉換后的JSON對象
alert(obj.name);//json name

方法二:js中著名的eval函數
var strJSON = "{name:'json name'}";//得到的JSON
var obj = eval( "(" + strJSON + ")" );//轉換后的JSON對象
alert(obj.name);//json name

第二種方法需要注意的是,對象表達式{'name':'json name'}必須用“()”擴住,否則
var strJSON = "{name:'json name'}";
var obj = eval(strJSON);
alert(obj.constructor);//String 構造函數
alert(obj.name);//undefine
必須把對象表達式擴起來eval執行才能生成一個匿名對象!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!