JSON數(shù)據(jù)格式,JSON格式化介紹,JSON格式介紹。
1.基本介紹
首先有同學問我們在Javascript里操作的“JSON.stringify ”與 “JSON.parse ”是Javascript自帶的嗎?
JSON.stringify();
JSON.parse();首先:JSON對象是javascript自帶的,不過對于不同瀏覽器,支持不同。
支持列表
- IE8+
- chrome
- firefox
- safari
...
不支持列表
- ie7,ie6, ie6-
在現(xiàn)在瀏覽器,IE8+,chrome,firefox,safair等支持,但是在ie6,ie7是不支持的,如果用這JSON 對象,并且要求低版本的瀏覽器支持,你可以使用json2來支持。
附帶:JSON2
早期的JSON解析器基本上就是使用JavaScript的eval()函數(shù)。由于JSON是JavaScript語法的自己,因此eval()函數(shù)可以解析、解釋并返回JavaScript的對象和數(shù)組。
ECMAScript 5對解析JSON的行為進行了規(guī)范,定義了全局對象JSON。
據(jù)網(wǎng)上資料,瀏覽器對JSON的支持情況 : IE8 chrome1+ safari3+ firefox3+
2.JSON用法
對象以"{"(左括號)開始,"}"(右括號)結(jié)束。每個"名稱"后跟一個":"(冒號);"'名稱/值’'對"之間運用 “,”(逗號)分隔。 名稱用引號括起來;值如果是字符串則必須用括號,數(shù)值型則不須要。
例如:
{
"站長": "soso,QQ:8446666",
"域名": "http://suancuo.cn",
"開發(fā)語言": "最牛逼的語言——Java ^_^",
"編碼": "UTF-8"
}數(shù)組是值(value)的有序集合。一個數(shù)組以”[”(左中括號)開始,"]"(右中括號)結(jié)束。值之間運用 ","(逗號)分隔。
例如:
{
"技術(shù)使用": [
"SpringMVC",
"Mybatis ",
"Freemarker",
"Shiro"
],
"數(shù)據(jù)存儲": [
"Redis",
"RDS",
"七牛云存儲"
]
}在數(shù)據(jù)傳輸流程中,json是以文本,即字符串的形式傳遞的,而JS操作的是JSON對象,所以,JSON對象和JSON字符串之間的相互轉(zhuǎn)換是關鍵。
JSON字符串:
var data='{"name":"sojson","url":"suancuo.cn"}';//外面是用單引號“'”引用。
var data="{\"name\":\"sojson\",\"url\":\"suancuo.cn\"}";//外面用雙引號就要用反斜杠 ‘\’。
JSON對象:
var data={"name":"sojson","url":"suancuo.cn"};注意:如果obj本來就是一個JSON對象,那么運用 eval()函數(shù)轉(zhuǎn)換后(哪怕是多次轉(zhuǎn)換)還是JSON對象,但是運用 parseJSON()函數(shù)處理后會有疑問(拋出語法異常)。
個人推薦最好不要用eval(),因為如果可以運算的字符串,結(jié)果就會和應該的到的不一致,比如字符串里有含有"1+2",本來就是個字符串,但是結(jié)果是以"3"的方式輸出的。
可以運用 toJSONString()或者全局的JSON.stringify()函數(shù)將JSON對象轉(zhuǎn)化為JSON字符串。
代碼如下:
//將JSON對象轉(zhuǎn)化為JSON字符 var jsonstr = data.toJSONString();//將JSON對象轉(zhuǎn)化為JSON字符 var jsonstr = JSON.stringify(
//或者這樣data);
總結(jié)一下:
- 在數(shù)據(jù)傳輸流程中,json是以文本,即字符串的形式傳遞的,和其他的傳輸類型沒有任何差別。都是以字符串文本傳輸。
- Json.stringify()將JSON對象轉(zhuǎn)為JSON字符串(也稱之為序列化);
- Json.parse()將JSON字符串轉(zhuǎn)為JSON對象(也稱之為反序列化);
版權(quán)所屬:SO JSON在線解析
原文地址:http://suancuo.cn/blog/24.html
轉(zhuǎn)載時必須以鏈接形式注明原始出處及本聲明。
如果本文對你有幫助,那么請你贊助我,讓我更有激情的寫下去,幫助更多的人。
