javascript
对JSON的一点认识和理解以及JQuery处理JSON
JSON(JavaScript Object Notation)javscript對象標記,是一種輕量級的數據交換格式。具體的詳細基礎知識可以參考JSON官網http:/www.json.org/。
不說太多廢話,直接說說我對JSON的理解吧。
一、JSON的一些基礎知識。
JSON中對象通過“{}”來標識,一個“{}”代表一個對象,如{“AreaId”:”123”},對象的值是鍵值對的形式(key:value)。
?
“[]”,標識數組,數組內部各個數據之間通過“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]。
很多情況下是對象數組,那就是這樣:
[{“AreaId”:”123”},{“AreaId”:”345”}]
?
其實數組也是一個對象,上面的格式也可以寫成這樣:
{“Area”:[{“AreaId”:”123”},{“AreaId”:”345”}]}
這表示一個Area對象,他有兩個子數據,每個子數據也是一個對象,每個子對象都是AreaId。
?
JSON中字符串和字符的定義格式和一般的類C語言定義是類似的,雙引號定義字符串,單引號定義字符。
JSON的鍵(Key)用雙引號括起來,比如上面的“Area“和”AreaId“,都是用雙引號括起來的,在一些語言中構造JSON字符串的時候,可以使用轉義字符轉義雙引號。
?
二、javascript操作JSON字符
1、先要區分JSON字符串和JSON對象
JSON字符串:
Var strJSON = “{\“Area\”:[{\“AreaId\”:\”123\”},{\“AreaId\”:\”345\”}]}”,
其實也可以寫成這樣:
Var strJSON = ‘{“Area”:[{“AreaId”:”123”},{“AreaId”:”345”}]}’,
這表示一個JSON字符串,由于在Js中單引號和雙引號都可以表示一個字符串,所以上面第一個使用雙引號和第二個使用單引號的都表示一個JSON字符串。
下面看看JSON對象
Var JSON = {“Area”:[{“AreaId”:”123”},{“AreaId”:”345”}]},
看到了吧,JSON對象最外面是沒有單引號或者雙引號的,這就表示一個JSON對象。
?
2、JSON字符串向JSON對象轉換
直接只用JS的eval()方法。
如上面的strJSON字符串可以這樣轉換為JSON對象
Var JSON = eval(”(”+strJSON+”)”),
這樣就轉換為JSON對象了。
?
據說使用js的eval()方法有安全上的問題,所以好多人推薦使用JSON官網的json.js包進行轉換,但是我去JSON官網下載這個包的時候,發現只有一句話那就是alert(’error’)。不知什么原因,哪位有知道的希望告知一下。
?
由于使用的JQuery,而且聽說Jquery和json.js有沖突,于是參考JQuery 和 json.js 沖突問題這篇文章,下載了處理json的jquery插件。
那個插件挺好用的,比如以上的把json字符串轉換為JSON對象:
Var JSON = $.parseJSON(strJSON);
這樣就可以使用JSON對象了。
其實在Jquery1.4.1之后JQuery也已經添加了對JSON處理的方法,方法名也是parseJSON(str),具體使用也是和上面一樣,如果你使用的是1.4.1之后的版本那就不用上面的那個插件了,直接用那個方法就可以了。
如果要是使用Jquery的ajax方法,也可以直接使用getJSON方法,就可以直接獲得JSON對象,無需轉換。
3、處理JSON數據
獲得JSON對象后,就應該處理JSON對象了,比如通過前面的那個strJSON字符串獲得JSON對象之后,可以這樣獲得JSON對象的值
Var firstAreaId = JSON.Area[0].AreaId.
JSON是剛才生成的JSON對象,Area[0]表示JSON對象的第一個Area對象(因為Area對象有兩個子對象),AreaId就是要獲得子對象的數據。
好了,就寫這些吧,如果有不對的地方,請大家指正。
轉載于:https://www.cnblogs.com/acles/archive/2011/03/30/1999479.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的对JSON的一点认识和理解以及JQuery处理JSON的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 格斗前期怎么加点?
- 下一篇: “所叹独乖绝”上一句是什么