Json操作問題總結
大家都知道,Json是一種輕量級的數據交換格式,對JS處理數據來說是很理想滴!
熟練寫過xxx.json文件和操作的小夥伴來說,我說的問題都不是什麽大問題啦,可以忽略本寶寶的文章,更希望各位大佬指點一番(●‘?‘●)
?
問題一,數據格式問題
第①種,完全正確的寫法;
[ {"name":"aaa中文測試","payment":"999","url":"http://www.bejson.com","asdf":"asdf"}, {"name":"bbb","payment":"888","url":"http://www.bejson.com","asdf":"asdf"}, {"name":"ccc中文測試","payment":"777","url":"http://www.bejson.com","asdf":"asdf"}, {"name":"ddd","payment":"666","url":"http://www.bejson.com","asdf":"asdf
]
第②種,雷區錯誤的寫法:
[ {name:"aaa中文測試",payment:"999",url:"http://www.bejson.com",asdf:"asdf"}, {name:"bbb",payment:"888",url:"http://www.bejson.com",asdf:"asdf"}, {name:"ccc中文測試",payment:"777",url:"http://www.bejson.com",asdf:"asdf"}, {name:"ddd",payment:"666",url:"http://www.bejson.com",asdf:"asdf"} ]
看清楚了啊各位,沒有引號的key ↑ 這種,你放在xxx.json文件中檢驗是通不過的,所以就會報錯的哇,這是一個特大的誤區!
你要是放在xxx.js中這樣寫沒人管你啊,但你現在要是在xxx.json中這樣寫是絕對不行的;
JSON官網最新規範有規定啊,只要是字符串,不管是key還是value都需要用引號引起來,不要小看這個引號,就像本寶寶,寫js寫習慣了沒有加引號,結果硬是沒發現這個問題,白白浪費了大好時光/(ㄒoㄒ)/~~
不要反駁為什麽要加引號,官網就是這麽定義的。
?
問題二,數據結構問題
JSON就是一串字符串,只不過元素會使用特定的符號標註。
{ } 雙括號表示對象
[ ] 中括號表示數組
" " 雙引號內是屬性或值
總結來說:{"key" : "value"}
key定義的屬性名啦,value可以是字符串、數字、布爾、數組、對象等值;
所以可以使用這樣的結構來寫json:
{"name": "chuyue0"} {"name":["chuyue0","chuyue1"]}
[{"name": "chuyue0"},{"name": "chuyue1"}]//第二種分開寫,本寶寶習慣用這種??
我想到了個問題,看到的大佬解答下,JS有集合的說法麽,如有,形式是怎樣的呢,同數組嗎?
?問題一二都是平時應該註意的小問題,只要仔細、熟練,問題就不大!
?
問題三,相互轉換問題
在數據傳輸過程中,Json是以字符串的形式傳遞的;JS操作的是Json對象,所以需要使用特定方法來轉換!
var str = ‘{ "name": "chuyue0", "sex": "female" }‘; //json字符串 var data=eval("("+str+")"); //轉換為Json對象 console.log(data.name)
?使用eval()解析Json不安全
現在大部分現代瀏覽器(IE9+)都自帶原生JSON對象,提供方法解析!
① Json字符串轉換為Json對象
var str = ‘{ "name": "chuyue0", "sex": "female" }‘; var data=JSON.parse(str); console.log(data);
如果parse()方法拋異常,加入對Json字符串的判斷試試(typeof(str)===‘string‘)
jQuery使用方法:$.parseJSON( str); 或者jQuery.parseJSON(str);
轉換為對象後就可以進行其他的操作啦o(* ̄▽ ̄*)ブ
② Json對象轉換為Json字符串
var obj2 = { "name": "chuyue0", "sex": "female" };//Json對象 var str2 = JSON.stringify(obj2 ); console.log(str2);
?如果data已經是Json對象,進行eval()轉換後就會報錯,如下圖:
補充,
數組轉字符串: array.join(‘,‘)
字符串轉數組: str.split(‘,‘)
?
以上就是在操作Json的時候遇到各種的問題,希望通過自己的錯誤認識來幫助到大家~~~~~~
全篇筆心哦~~~
Json操作問題總結