一、JSONObject和JSONArray的數據表示形式
JSONObject的數據是用 { ?} 來表示的,
? ? ? ? 例如: ? { "id" : "123", "courseID" : "huangt-test", "title" : "提交作業", "content" : null ?} ?
而JSONArray,顧名思義是由JSONObject構成的數組,用 ?[ { } , { } , ...... ?, { } ] ?來表示
? ? ? ?例如: ? [?{? "id" : "123",?"courseID" : "huangt-test",?"title" : "提交作業" } ?, ?{??"content" : null,?"beginTime" : 1398873600000? "endTime" } ] ;?
? ? ? ? 表示了包含2個JSONObject的JSONArray。
可以看到一個很明顯的區別,一個最外面用的是 { ?} ?,一個最外面用的是 [ ?] ?;
?
JavaScript解析JSON
**
解析json數組即對JSONArray的遍歷
一、對于標準的json數組如:
var result=[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}];
?
進行遍歷的時候,可以直接通過for循環遍歷這個數組,有兩種方法
1.
for (var i = 0; i < result.length; i++) {//result[i]表示獲得第i個json對象即JSONObject//result[i]通過.字段名稱即可獲得指定字段的值
result[i].userName;}
?
2.
for(var i in result){//表示遍歷數組,而i表示的是數組的下標值,//result[i]表示獲得第i個json對象即JSONObject//result[i]通過.字段名稱即可獲得指定字段的值
result[i].userName;}
?
二、對于不標準的json數組如:
var result={"datas":[{"flag":1,"macId":"2","mbId":0,"userName":"XXX"},{"flag":1,"macId":"1","mbId":1,"userName":"YYY"}]};
?
進行遍歷之前得先解析出標準的json數組格式即[{},{}]
var data= result.datas;
1.
for (var i = 0; i < data.length; i++) {//data[i]表示獲得第i個json對象即JSONObject//data[i]通過.字段名稱即可獲得指定字段的值
data[i].userName;}
?
2.
for(var i in data){//表示遍歷數組,而i表示的是數組的下標值,//data[i]表示獲得第i個json對象即JSONObject//data[i]通過.字段名稱即可獲得指定字段的值
data[i].userName;}
**
注意點:eval()方法的作用
**
在JS中將JSON的字符串解析成JSON數據格式,一般有兩種方式:
1. 一種為使用eval()函數。
2. 使用Function對象來進行返回解析