日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
JSON是什么?它能帶來(lái)什么?它和XML比較?
  • 一、JSON是什么?
  • 二、如果到這里你還不明白?JSON是什么,那么我就發(fā)大招了!
  • 三、它能帶來(lái)什么?
  • 四、它和XML對(duì)比?
  • XML Demo
  • JSON Demo
  • Java常用的json庫(kù)
  • 總結(jié)

一、JSON是什么?

有一種叫做JSON (JavaScript Object Notation) 的輕量級(jí)數(shù)據(jù)交換格式能夠替代XML的工作。它就是JSON。

數(shù)據(jù)格式比較簡(jiǎn)單, 易于讀寫(xiě), 格式都是壓縮的, 占用帶寬小。

易于解析這種語(yǔ)言, 客戶(hù)端JavaScript可以簡(jiǎn)單的通過(guò)eval()進(jìn)行JSON數(shù)據(jù)的讀取。

包括ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等語(yǔ)言服務(wù)器端語(yǔ)言, 便于服務(wù)器端的解析。

各語(yǔ)言對(duì)JSON支持的特別好,自從Ajax的流行,JSON格式傳輸就更流行了。

二、如果到這里你還不明白?JSON是什么,那么我就發(fā)大招了!

其實(shí)我在為公司面試的時(shí)候,我經(jīng)常有提到,假如我不知道JSON是個(gè)什么玩意?你怎么告訴我,讓我知道是個(gè)什么東西。(下面都是我的個(gè)人理解,因理解因人而異,受用即可!)

問(wèn)了這么多人,其實(shí)結(jié)果不是我想要的,大多數(shù)的答案有這些。

它是前端和后臺(tái)交互用的。

它是鍵值對(duì)的。

以上2點(diǎn)比較多。還有一些亂七八糟的完全偏離了JSON。

那么它應(yīng)該是怎樣的?應(yīng)該這么回答,個(gè)人認(rèn)為!

首先,它只是一個(gè)字符串,它只是一個(gè)有規(guī)則的字符串。(重點(diǎn))

然后它的表達(dá)(表現(xiàn))形式是鍵值對(duì)的。其實(shí)非常類(lèi)似Java語(yǔ)言里的Map,Objective-C里的字典,其他語(yǔ)言都有對(duì)應(yīng)的,我說(shuō)實(shí)話其他語(yǔ)言我不知道!我為什么用MapString泛型,因?yàn)槔碚撋纤逆I值對(duì)應(yīng)該都是字符串,Why?這個(gè)問(wèn)題問(wèn)的好,我可以這么回答你,因?yàn)樗旧砭褪亲址?/p>

上面說(shuō)的理論上表達(dá)方式,那么實(shí)際目前我們用到的鍵值對(duì)支持什么呢?可以支持String、Number、Array以及Boolean、null什么的。

它的作用是用來(lái)交互的,不一定Web項(xiàng)目的前后端交互也可以接口,配置文件,文件存儲(chǔ)等等都OK。目前移動(dòng)端比較火,一般的項(xiàng)目都會(huì)用JSON來(lái)傳輸。

三、它能帶來(lái)什么?

簡(jiǎn)潔、簡(jiǎn)單、體積小等。

上手容易,高效。

跨語(yǔ)言,目前移動(dòng)端Android、IOS一般項(xiàng)目構(gòu)造都是其他語(yǔ)言提供接口(JSON方式),移動(dòng)端讀取接口的方式開(kāi)發(fā)。

….

四、它和XML對(duì)比?

可讀性:看了網(wǎng)上的各種帖子,有說(shuō)可讀性相當(dāng),不過(guò)基本是說(shuō)XML可讀性好,我認(rèn)為還湊合??梢源蚱绞?。

可擴(kuò)展性:有人說(shuō),“XML天生有很好的擴(kuò)展性,JSON當(dāng)然也有,沒(méi)有什么是XML能擴(kuò)展,JSON不能的。不過(guò) JSON在Javascript主場(chǎng)作戰(zhàn),可以存儲(chǔ)Javascript復(fù)合對(duì)象,有著XML不可比擬的優(yōu)勢(shì)”。我贊同一半,我覺(jué)得這些帖子都是老帖子,XML可以靈活擴(kuò)展是因?yàn)楦鞣N語(yǔ)言有支持的其他Jar包,類(lèi)庫(kù)等。但自從JSON火起來(lái)后,JSON的支持包,類(lèi)庫(kù)等,相信每個(gè)語(yǔ)言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。

編碼難度:XML有有DOM,SAX,STAX等解析技術(shù),JSON也有我上面說(shuō)的那些,都OK。

解碼難度:同上。

解碼編碼效率:呵呵!解析XML有專(zhuān)用CPU、你造嗎?

下面給一個(gè)Demo

XML Demo

 
 
 
  1.  中國(guó)
  2.  
  3.  黑龍江
  4.  
  5.  哈爾濱
  6.  大慶
  7.  
  8.  
  9.  
  10.  廣東
  11.  
  12.  廣州
  13.  深圳
  14.  珠海
  15.  
  16.  
  17.  
  18.  臺(tái)灣
  19.  
  20.  臺(tái)北
  21.  高雄
  22.  
  23.  
  24.  
  25.  新疆
  26.  
  27.  烏魯木齊
  28.  
  29.  

JSON Demo

 
 
 
  1. {
  2.  "name": "中國(guó)",
  3.  "province": [  {  "name": "黑龍江",  "citys": {  "city": [  "哈爾濱",  "大慶"  ]  }  },  {  "name": "廣東",  "citys": {  "city": [  "廣州",  "深圳",  "珠海"  ]  }  },  {  "name": "臺(tái)灣",
  4.  "citys": {  "city": [  "臺(tái)北",  "高雄"  ]  }  },  {  "name": "新疆",  "citys": {  "city": [  "烏魯木齊"  ]  }  }  ]
  5. }

Java常用的json庫(kù)

我們?cè)谌粘i_(kāi)發(fā)中少不了和JSON數(shù)據(jù)打交道,那么我們來(lái)看看JAVA中常用的JSON解析方式。

  • 1、JSON官方
  • 2、GSON
  • 3、FastJSON
  • 4、jackson

總結(jié)

當(dāng)項(xiàng)目沒(méi)有你接手的時(shí)候,沒(méi)有強(qiáng)行用XML的情況下,你就用JSON,沒(méi)有其他額外強(qiáng)行規(guī)定的情況下,你就用JSON。

本人是在學(xué)習(xí)Elasticsearch的時(shí)候開(kāi)始強(qiáng)度的接觸JSON,可以這么給你形容,如果Elasticsearch返回的是一個(gè)XML,估計(jì)你要哭,Elasticsearch也要哭,這么和你比較你懂了嗎。


名稱(chēng)欄目:JSON是什么?它能帶來(lái)什么?它和XML比較?
文章位置:http://www.5511xx.com/article/cochcpd.html