js處理json陣列
JSON(JavaScript Object Notation )是一種輕量級的資料交換格式,採用完全獨立於語言的文字格式,JSON是JavaScript原生資料格式。
在JSON中,有兩種資料結構:物件和陣列。
1.一個物件以“{”開始,“}”結束。每個“名稱”後跟一個“:”,“名稱/值”對之間運用“,”分隔,名稱用引號括起來,如果是字串則必須用括號,數值型別則不需要。
例:var obj={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2.陣列是值的有序集合,一個數組以“[”開始,以“]”結束,值之間用“,”分隔。
例:var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
在資料傳輸流程中,json是文字,即以字串形式傳遞,而JS操作的是json物件,所以,JSON物件和JSON字串之間可以相互轉換。
JSON字串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON物件:
var str1 = { "name": "cxh", "sex": "man" };
3.JSON字串轉換為JSON物件:
//JSON字串轉換JSON物件
var Obj = eval('('+ str +')');
var Obj = JSON.parse(str);
var Obj = str.parseJSON();
使用的時候直接,alert(Obj.name)。
*注:如果Obj本身就是一個JSON物件,用eval()函式處理後,結果還是JSON物件,但用parseJSON()處理會丟擲語法異常。
4.JSON物件轉化為JSON字串。
var str1 = Obj.toJSONString();
var str2 = JSON.stringgify(obj);
今天測試遇到的問題,php在將資料回傳給ajax時發現,用echo和print_r都沒有問題,var_dump回傳的資料在轉換成JSON物件時失敗 ,請大神詳解~~