web開發json,WEB開發講師招聘

本文目錄一覽:

為什麼很多web應用的api都用json開發,和gsoap+webservice相比,它有哪些優缺點

json和soap+webservice是一種數據交互格式,目前所有的平台都對他們進行支持。json是以鍵值對的形式展現的長串,webservice交互的數據多為xml,就可讀性和可擴展性而言,兩種方式不相上下。編碼的方便程度上json要稍微占點優勢,沒有xml那種多於的標籤對。客戶端在使用json串的的時候,只需要eval(),eval這個函數很多語言都有,比如js,as 等等。在維護方面維護一段xml串比一段json我想難度要大點

WEB開發中,使用JSON-RPC好,還是RESTful API好

兩者沒有高下之分,無非是一種約定俗成的標準。習慣用RPC就用RPC,能理解REST就用REST。

JSON-RPC比較符合直觀,格式也相對寬鬆;

REST最近正流行,有自己的一套設計規範。

REST面對的疑問跟當年剛開始流行面向對象時的情況是一樣的。

它適合很多情況,但並不適合所有情況。

最差的結果就是盲目跟風,又對REST的概念和理念一知半解,最後搞出一個半吊子的怪胎,還自我標榜用了流行的RESTful API。

REST是一種設計風格,它的很多思維方式與RPC是完全衝突的。

RPC的思想是把本地函數映射到API,也就是說一個API對應的是一個function,我本地有一個getAllUsers,遠程也能通過某種約定的協議來調用這個getAllUsers。至於這個協議是Socket、是HTTP還是別的什麼並不重要;

RPC中的主體都是動作,是個動詞,表示我要做什麼。

而REST則不然,它的URL主體是資源,是個名詞。而且也僅支持HTTP協議,規定了使用HTTP Method表達本次要做的動作,類型一般也不超過那四五種。這些動作表達了對資源僅有的幾種轉化方式。

這種設計思路是反程序員直覺的,因為在本地業務代碼中仍然是一個個的函數,是動作,但表現在接口形式上則完全是資源的形式。

就像面向對象的「萬物皆對象」理論在習慣了純粹面向過程開發的程序員眼裡顯得十分彆扭一樣:我的代碼本來就是按順序、循環、分支這麼運行的啊,為啥非得在很明確的結構上封裝一層一層的基類子類接口,還要故意給兩個函數起同一個名字,調用時才選擇用哪一個呢?

使用「萬物皆資源」的思想編寫實際項目中的API接口時,最常見的問題就是「這玩意到底是個什麼資源?………………算了,我就直接寫吧,不管什麼風格了」

比如,login和logout應該怎麼REST化?

比如,多條件複合搜索在GET里寫不下怎麼辦?

比如,大量資源的刪除難道要寫幾千個DELETE?

其實在理解了REST後,這些都不是什麼無解的難題,只是思維方式要轉換一下:

login和logout其實只是對session資源的創建和刪除;

search本身就是個資源,使用POST創建,如果不需持久化,可以直接在Response中返回結果,如果需要(如翻頁、長期緩存等),直接保存搜索結果並303跳轉到資源地址就行了;

id多到連url都寫不下的請求,應該創建task,用GET返回task狀態甚至執行進度;

……等等等。

如果只是規定了一種規範,卻不理解它表相下面的思維方式,實施中又按照自己的理解隨意變動,那結果肯定是混亂不堪的。

當然,API怎麼寫是開發者的自由。但如果一個API在url里放一堆動詞、資源設計混亂、各種亂用HTTP Method和Status Code,還自稱RESTful API的話,那就像你養了一條狗,還管它叫貓一樣。

這種混搭產物,不如叫它REFU吧。

(Remove Extension From Url:從url里去掉文件擴展名)

前面說了半天REST的理念和不懂REST造成的問題,但是,這並不代表REST比RPC更「高等」,更不是說不理解REST的人是落伍的。

所謂代碼風格、接口形式、各種林林總總的格式規定,其實都是為了在團隊內部形成共識、防止個人習慣差異引起的混亂。JSON-RPC當然也是有規範的,但相比REST實在寬鬆太多了。

如果一個開發團隊規定必須在url里寫action,所有請求都是POST,可以嗎?當然也沒問題,只是不要拿出去標榜自己寫的是RESTful API就行。

規範最終還是為了開發者和軟件產品服務的,如果它能帶來便利、減少混亂,就值得用;反之,如果帶來的麻煩比解決的還多,那就犯不上純粹跟風追流行了。

在 java web開發中怎麼使用json?

一、JSON建構有兩種結構:

json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組2種結構,通過這兩種結構可以表示各種複雜的結構

1、對象:對象在js中表示為“{}”括起來的內容,數據結構為 {key:value,key:value,…}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。在Java中就是一種Map結構。

2、數組:數組在js中是中括號“[]”擴起來的內容,數據結構為 [“java”,”javascript”,”vb”,…],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。在Java中是一種list結構。

經過對象、數組2種結構就可以組合成複雜的數據結構了。

二、Json in Javascript

使用Json語法創建對象

var people = {“name”:”jack”,”sex”:”mail”};

可以通過這種語法創建json對象,用“{}”括起來,用“,”隔開key:value

使用Json語法創建數組

var arr =[value1,value2…];

一個包含多個people的數組 peoples = [{“name”:”jack”,”sex”:”mail”},

“name”:”lily”,”sex”:”femail”};

Json數組可以通過這種語法創建,用”[]”括起來,數組元素之間用“,”分隔開,下面是這種語法的示意圖:

在使用Json格式字符串與服務器交互時候,可以利用Json擴展的方法將字符串轉換成一個JavaScript對象,或者將一個對象轉換成Json格式字符串。不過先要登錄下載Json2.js文件。引入該包後,js對象直接用toJSONString()裝換為字符串格式,字符串可以用parseJSON()轉換成js對象。

訪問數據

只需用點號表示法來表示數組元素。所以,要想訪問 上面peoples列表的第一個條目的名字,只需在 JavaScript 中使用下面這樣的代碼:

peoples[0].name

利用這樣的語法,可以處理任何 JSON 格式的數據,而不需要使用任何額外的 JavaScript 工具包或 API。

修改數據

正如可以用點號和方括號訪問數據,也可以按照同樣的方式輕鬆地修改數據:

peoples[0].name = “Rachmaninov”;

在將字符串轉換為 JavaScript 對象之後,就可以像這樣修改變量中的數據。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237007.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:02
下一篇 2024-12-12 12:03

相關推薦

  • Python Web開發第三方庫

    本文將介紹Python Web開發中的第三方庫,包括但不限於Flask、Django、Bottle等,並討論它們的優缺點和應用場景。 一、Flask Flask是一款輕量級的Web…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟件開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分布式文件系統(HDFS)。HDFS是一個可擴展性高的分布式…

    編程 2025-04-29
  • Python操作Web頁面

    本文將從多個方面詳細介紹Python操作Web頁面的技巧、方法和注意事項。 一、安裝必要的庫 在Python中操作Web頁面,需要用到一些第三方庫。 pip install req…

    編程 2025-04-28
  • 如何使用WebAuth保護Web應用

    WebAuth是用於Web應用程序的一種身份驗證技術,可以提高應用程序的安全性,防止未經授權的用戶訪問應用程序。本文將介紹如何使用WebAuth來保護您的Web應用程序。 一、什麼…

    編程 2025-04-28
  • 如何使用Newtonsoft datatable轉Json

    Newtonsoft DataTable 是一個基於.NET的JSON框架,也是一個用於序列化和反序列化JSON的強大工具。 在本文中,我們將學習如何使用Newtonsoft Da…

    編程 2025-04-28
  • Python編寫Web程序指南

    本文將從多個方面詳細闡述使用Python編寫Web程序,並提供具有可行性的解決方法。 一、Web框架的選擇 Web框架對Web程序的開發效率和可維護性有着重要的影響,Python中…

    編程 2025-04-28
  • JPRC – 輕鬆創建可讀性強的 JSON API

    本文將介紹一個全新的 JSON API 框架 JPRC,通過該框架,您可以輕鬆創建可讀性強的 JSON API,提高您的項目開發效率和代碼可維護性。接下來將從以下幾個方面對 JPR…

    編程 2025-04-27
  • 有哪些Python軟件可以用來構建Web應用

    Python語言是一種膠水語言,可以和多種語言以及系統進行交互,廣泛應用於多個領域。在Web應用開發領域,Python是一個功能強大的語言,在Python社區中有許多優秀的Web應…

    編程 2025-04-27

發表回復

登錄後才能評論