轉換方法:1、使用「JSON.parse()」方法,語法「JSON.parse(有效JSON字串)」;2、使用「JSON.stringify()」方法,語法「JSON. stringify(有效JSON字串)」。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
在實際專案中,常遇到字元格式的問題,記下來以便日後方便查看。用到兩個函數:JSON.stringify() 和 JSON.parse()。
使用ajax向後台請求數據,後台給前端返回數據,明明後端腳本寫的是json函數處理後的json格式,但是前端接收數據時,卻時而是object,時而是字符串,令人百思不得其解。具體原因我還不是很清楚。
在資料傳輸過程中,json是以文本,即字串的形式傳遞的,而JS操作的是JSON物件。所以,JSON物件和JSON字串之間的相互轉換是關鍵。
例如:
JSON字串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON物件:
var str2 = { "name": "cxh", "sex": "man" };
一、JSON字串轉換為JSON物件
要使用上面的str1,必須使用下面的方法先轉換成JSON物件:
//由JSON字串轉換為JSON物件
var obj = eval('(' + str + ')');
或
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然後,就可以這樣讀取:
Alert(obj.name); Alert(obj.sex);
特別注意:如果obj本來就是一個JSON對象,那麼使用eval()函數轉換後(哪怕是多次轉換)還是JSON對象,但是使用parseJSON()函數處理後會有問題(拋出語法異常)。
二、可以使用toJSONString()或全域方法JSON.stringify()將JSON物件轉換為JSON字串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 alert(last);
注意:
##上面的幾個方法中,除了eval()函數是js自帶的之外,其他的幾個方法都來自json.js套件。新版的JSON 修改了API,將JSON.stringify() 和JSON.parse() 兩個方法都注入到了Javascript 的內建物件裡面,前者變成了Object.toJSONString(),而後者變成了String. parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,則表示您的json套件版本太低。
###【推薦學習:###javascript影片教學###】 ###以上是javascript json字串如何轉換成對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!