JS中對象與字符串的互相轉換

在使用 JSON2.JS 文件的 JSON.parse(data) 方法時候,碰到了問題:chrome

throw new SyntaxError('JSON.parse');json

查詢資料,大概意思以下:瀏覽器

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對象blog

反過來,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();ip


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。get

 

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()方法;

Creative Commons License本文基於 Creative Commons Attribution 2.5 China Mainland License發佈,歡迎轉載,演繹或用於商業目的,可是必須保留本文的署名 http://www.cnblogs.com/luminji(包含連接)。如您有任何疑問或者受權方面的協商,請給我留言。

相關文章
相關標籤/搜索