在使用 JSON2.JS 文件的 JSON.parse(data) 方法時候,碰到了問題:
throw new SyntaxError('JSON.parse');
查詢資料,大概意思如下:
JSON.parse方法在遇到不可解析的字符串時,會拋出SyntaxError異常。
即:JSON.parse(text, reviver),This method parses a JSON text to produce an object or array. t can throw a SyntaxError exception.
所以,在這里在此總結一下 JS 中對象與字符串的互相轉換,因為這涉及到瀏覽器兼容問題。
1:jQuery插件支持的轉換方式
代碼如下:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字符串轉換成json對象
反過來,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();
2:瀏覽器支持的轉換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器
代碼如下:
JSON.parse(jsonstr); //可以將json字符串轉換成json對象
JSON.stringify(jsonobj); //可以將json對象轉換成json對符串
注:ie8(兼容模式),ie7和ie6沒有JSON對象,需要引入 json.js 或 json2.js。
3:Javascript支持的轉換方式
eval('(' + jsonstr + ')'); //可以將json字符串轉換成json對象,注意需要在json字符外包裹一對小括號
注:ie8(兼容模式),ie7和ie6也可以使用eval()將字符串轉為JSON對象,但不推薦這些方式,這種方式不安全eval會執行json串中的表達式。
4:JSON官方的轉換方式
http://www.json.org/,提供了一個json.js,這樣ie8(兼容模式),ie7和ie6就可以支持JSON對象以及其stringify()和parse()方法;
微信掃一掃,關注最課程(www.zuikc.com),獲取更多我的文章,獲取軟件開發每日一練