JSON詳解

/*

 * json對象的取值方法兩種

 * obj.屬性名

 * obj[屬性名]或obj['屬性名']

 * 若json的對象的key是數字(包括字符串型的 如'8','1')

 * 那取值的時候就必須採用obj[屬性名] 且屬性名既可以爲字符串型 也可以是整數型

 * json對象存儲的數據的是無序的 且不重複的(key不能重複)並且後面的相等的key元素會覆蓋前面的

 * json對象似於JAVA中的map結構

 

 *在JSON中,有兩種結構:對象和數組。

 1. 一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’ 對”之間運用 “,”(逗號)分隔。 名稱用引號括起來;值如果是字符串則必須用括號,數值型則不須要。例如:

 

 var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

 

 2. 數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間運用 “,”(逗號)分隔。

 */


var obj = {"s":1,'9':2,9:3};

//alert(obj.9);//報錯 不建議使用基本類型做Key(包括字符串型的 如'8','1')

//alert(obj['9']);//2 json對象的key是數字(包括字符串型的 如'8','1') 獲取value採用此種方法

//alert(obj.s);//1

//alert(obj['s']);//1



for( var o in obj){

// alert(o);//9,s //說明obj(json對象)散列結構 無序的 並且不可以重複 '9'和9是等同的 並且後面的相等的key元素會覆蓋前面的

// alert(obj[o]); //3,1

}



var obj_arr =[{'8':1,'9':2}];//json數組

// alert(obj_arr[0]['8']);//1


var str = {"name": "cxh", "sex": "man" };//json對象

 //alert(str.name);//cxh



var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];//json數組

 //alert(jsonranklist.length);//2

 //alert(jsonranklist[0].xlid);//cxh


 

/**

 * json字符串轉化爲json對象的三種方法

 *

 */


var str1 = '{"name": "cxh", "sex": "man" }';//json字符串


var test = eval('(' + str1 + ')');//字符串轉化爲json對象

 //alert(test.name);//cxh


var json_t = JSON.parse(str1); //由JSON字符串轉換爲JSON對象

 //alert(json_t.name);


/*此方法報錯 未嘗試成功*/

//var json_d = str1.parseJSON(); //由JSON字符串轉換爲JSON對象

//alert(json_d.name); 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章