-
1 # 網路老鼠Sunny
-
2 # 程式猿開發日記
第一:json是一種輕量級的資料交換格式,現在之所以要用json,一方面是為了伺服器端傳送到客戶端的資料更少,加快傳輸和響應速度。另一方面瀏覽器解析json格式的資料相對XML更加容易。
第二:返回什麼格式很大程度取決於前後端的約定,不一定是要返回json格式,現在還是有企業在介面入參和出參使用XML格式的。
第三:如果你解析過XML,你會發現其標籤解析比較麻煩,json這種資料格式,對於Java開發來說,看起來很友好,感覺更像縮減版的類。
-
3 # 大衛的思考
其實不應該這麼問的。
我們都是在服務傳輸資料時,基本都選擇了json來傳輸。
摒棄了早些年使用的xml格式,為什麼呢?
其實可以做個對比:
可讀性方面,json語法簡單,而xml是規範的標籤形式,易於理解。
可擴充套件性方面,json要比xml有更強的可擴充套件性,json在js處理方面更加有優勢。
編碼難度方面,json可編碼性要比xml更強,而xml支援dom、dom4j、sax等方式進行解析。
對於要求描述性強的可以去選擇xml。
對於資料傳輸方面可以直接用json,json格式與語言無關,也更加易於閱讀和編寫。
同時,json也易於機器解析和生成,有效提升網路傳輸效率,服務端也可以做壓縮傳輸,在與java物件轉換上更加具備優勢。
-
4 # fj-chenjz
這個問題,更準確提問應該是:資料請求為什麼要返回json資料,特別是前端與後端的互動,JAVA只是眾多程式語言的一種,現在不管用什麼編號語言,大部分後端與前端基本是透過json資料進行互動。
JSON是什麼?
前幾天分享了《Spring Boot 返回 JSON 資料,一分鐘搞定!》,好些人對 JSON 還沒有一個清晰的認識,今天棧長帶大家來認識一下什麼是JSON。
有一種叫做JSON (JavaScript Object Notation) 的輕量級資料交換格式能夠替代XML的工作。它就是JSON。
資料格式比較簡單, 易於讀寫, 格式都是壓縮的, 佔用頻寬小,易於解析這種語言。
客戶端JavaScript可以簡單的透過eval()進行JSON資料的讀取,包括ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等語言伺服器端語言, 便於伺服器端的解析。
各語言對JSON支援的特別好,自從Ajax的流行,JSON格式傳輸就更流行了。JSON常被用作序列化,推薦閱讀:關於Java序列化你應該知道的一切。
如果到這裡你還不明白?
JSON是什麼,那麼我就發大招了!
其實我在為公司面試的時候,我經常有提到,假如我不知道JSON是個什麼玩意?你怎麼告訴我,讓我知道是個什麼東西。(下面都是我的個人理解,因理解因人而異,受用即可!)
問了這麼多人,其實結果不是我想要的,大多數的答案有這些。
它是前端和後臺互動用的。 它是鍵值對的。
以上2點比較多。還有一些亂七八糟的完全偏離了JSON。那麼它應該是怎樣的?應該這麼回答,個人認為!
首先,它只是一個字串,它只是一個有規則的字串。(重點)然後它的表達(表現)形式是鍵值對的。其實非常類似Java語言裡的Map,Objective-C裡的字典,其他語言都有對應的,我說實話其他語言我不知道!
上面說的理論上表達方式,那麼實際目前我們用到的鍵值對支援什麼呢?可以支援String、Number、Array以及Boolean、null什麼的。
它的作用是用來互動的,不一定Web專案的前後端互動也可以介面,配置檔案,檔案儲存等等都OK。目前移動端比較火,一般的專案都會用JSON來傳輸。
它能帶來什麼?
簡潔、簡單、體積小等。
上手容易,高效。
跨語言,目前移動端Android、IOS一般專案構造都是其他語言提供介面(JSON方式),移動端讀取介面的方式開發。 ….
它和XML對比?
可讀性
看了網上的各種帖子,有說可讀性相當,不過基本是說XML可讀性好,我認為還湊合。可以打平手。
可擴充套件性
有人說,“XML天生有很好的擴充套件性,JSON當然也有,沒有什麼是XML能擴充套件,JSON不能的。
不過 JSON在Javascript主場作戰,可以儲存Javascript複合物件,有著XML不可比擬的優勢”。我贊同一半,我覺得這些帖子都是老帖子,XML可以靈活擴充套件是因為各種語言有支援的其他Jar包,類庫等。
但自從JSON火起來後,JSON的支援包,類庫等,相信每個語言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。
編碼難度
XML有有DOM,SAX,STAX等解析技術,JSON也有我上面說的那些,都OK。
解碼難度
同上。
解碼編碼效率
呵呵!解析XML有專用CPU、你造嗎?
回覆列表
恰恰相反,不是Java要返回JSON格式資料,記得10多年前,Ajax返回的都是html片段為主,如果是資料要求,也是以XML居多。
JSON最早是前端需求導致,JSON資料其實就是JavaScript能解析的物件資料表示格式。這樣的資料返回,前端直接能用或者JSON.parse一下就能使用,不再需要其他解析手段,比較簡單。
當然,JSON資料摒棄了XML的標籤,體積小很多,網路傳輸也更有優勢。