關於JSON的轉換與判斷
JSON對象轉化為JSON字符串
var last=JSON.stringify(obj); //將JSON對象轉化為JSON字符
json字符串轉換為json對象
在數據傳輸過程中,json是以文本,即字符串的形式傳遞的,而JS操作的是JSON對象,所以,JSON對象和JSON字符串之間的相互轉換是關鍵
例如:
JSON字符串:
var str1 = ‘{ "name": "cxh", "sex": "man" }‘;
JSON對象:
var str2 = { "name": "cxh", "sex": "man" };
轉換方法:
var obj = eval(‘(‘ + str + ‘)‘);
或者
var obj = str.parseJSON(); //由JSON字符串轉換為JSON對象(jq)
或者
var obj = JSON.parse(str); //由JSON字符串轉換為JSON對象
然後,就可以這樣讀取:
Alert(obj.name);
Alert(obj.sex);
特別註意:如果obj本來就是一個JSON對象,那麽使用eval()函數轉換後(哪怕是多次轉換)還是JSON對象,但是使用parseJSON()函數處理後會有問題(拋出語法異常)。
判斷字符串是否為JSON格式
function isJSON(str) { if (typeofstr == ‘string‘) { try { var obj=JSON.parse(str); if(typeof obj == ‘object‘ && obj ){ return true; }else{ return false; } } catch(e) { console.log(‘error:‘+str+‘!!!‘+e);return false; } } console.log(‘It is not a string!‘) }
js對象字面量的屬性名你加引號嗎
經常看到對象的屬性名有的加引號,有的不加,那加不加?又為什麽加?
查資料,得到下面的結論:
- 屬性名可以是包括空字符集在內的任何字符串
- 如果屬性名是一個合法的標識符,而不是保留字,則不強制用引號括住屬性名
- 逗號分隔多個名值對
解釋一下: - 第一條,看下面例子18cm的東西
- 第二條,標識符要合法,符合其命名規則:字母、數字、下劃線,且不能以數字開頭,
不能是保留字。
像下面的first-name就不符合命名規則,所以要加引號 - 最後,屬性的調用:
一般我們都是用 .式調用,即myObj.age
那第二條怎麽調用呢?
我們還有第二個調用方法:[ ] 法;即myObj[‘last-name‘]
當然其他的也可以這麽用
myObj[‘age‘],myObj[‘‘]
"18cm"
註意:方括號的引號一定要有哦
var str = { "name": "cxh", "sex": "man" };
var str = { name: "cxh", sex: "man" };
相關鏈接:
https://www.cnblogs.com/guoziyi/p/6003752.html
https://www.cnblogs.com/lanleiming/p/7096973.html
https://www.cnblogs.com/nostic/p/5879089.html
關於JSON的轉換與判斷