999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用JSON構建Android終端的Web API

2015-06-05 01:37:24趙超鴻
中國信息技術教育 2015年5期
關鍵詞:學生

趙超鴻

摘要:筆者通過對JSON數據格式的研究,結合實際需求,利用ASP實現對Web API的自定義構建,提供給AppInventor調用,從而實現了Web API在基于Android系統的學生成績查詢的應用。

關鍵詞:JSON、Web API;AppInventor;"名稱:值"對;鍵值對

中圖分類號:G481 文獻標識碼:A 論文編號:1647-2117(2015)05-0074-04

Web2.0時代,隨著移動終端的普及,移動應用滲透到每個人的日常生活中,人們隨時隨地通過網絡訪問各類網站,網站不僅要滿足人對機器的訪問模式,而且還需提供機器對機器的訪問模式,以便移動終端快速獲取信息。在機器對機器的訪問模式中,提供數據的一方被稱為網絡服務(Web Service),而客戶端應用與網絡服務之間的通信協議則稱為網絡應用程序接口,簡稱Web API。在網絡通訊過程中,服務器端的Web Service根據需求生成某種格式的數據供客戶端的Web API調用。比較知名的Web API有Amazon Web API、FaceBook Web API、Twitter Web API、Baidu Web API等,因此,利用這些公開的Web API可以更方便有效地獲取信息,加工整合,從而發現信息的內在價值,實現創新。誠然,我們也可以根據規則自定義自己需要的Web API,供客戶端調用。

Web API地址的表示形式是http://URL:port?tag=value,其中URL表示Web API服務器地址,port表示通訊端口,tag表示要傳遞參數值的引用,value表示傳遞的參數。用來表示Web API的數據格式一般有JSON和XML兩種,這兩種格式的優缺點為:①可讀性:JSON偏向于符號表示,XML偏向于單詞表示,兩者各具優勢。②簡潔性:JSON優于XML,JSON更接近類C語言的描述,而XML更接近文本描述。③友好性:JSON比XML更友好,JSON在客戶端可以使用eval( )解釋,在服務器端可以使用ASP、 C、 C#、ColdFusion、 Java、 JavaScript、 Perl、 PHP、Python、 Ruby等60多種語言生成,官方網站(http://www.json.org/json-zh.html)已經提供支持各種語言的封裝函數;而XML則相對復雜,不管在服務器端還是在客戶端都需要花費大量的代碼來解析維護。④安全性:由于JSON可以使用eval( )來解釋,安全性會稍微比XML差。

根據以上分析,對于安全性不是首要考慮要素的Android終端來說,筆者建議使用JSON來描述數據格式。

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,它基于JavaScript語言,遵守ECMA-262標準。JSON的構建基于"名稱:值"對的集合和值的有序列表兩種,前者稱為對象(object),后者稱為數組(array),對象和數組之間可以互相嵌套,如{"021600201":[{"語文":"117.5","語文排名":"50"},{"數學":"112","數學排名":"125"}]}。JSON在“值”的表達上使用Unicode編碼生成諸如{"學生":{"021600201":"\u9648\u5B9D\u4EEA"}}這樣格式的數據。我們利用BEJSON網站(網址:http://www.bejson.com/)校驗以上兩個JSON格式數據的有效性,格式化后的JSON如下頁表1。

為使Android終端能獲取Web API傳遞過來的JSON格式數據,筆者使用了AppInventor作為終端應用程序開發工具。App Inventor是一款手機編程軟件,它采用Open Blocks Java Library來創建可視化的模塊編程語言,允許沒有編程知識的用戶以拖拽特定的應用程序行為模塊來創建Android應用。App Inventor整個項目建立在云服務器上,只要輸入具體的網址(官方網址:http://contest.appinventor.mit.edu/),通過Gmail郵箱登錄即可訪問,開發的源程序以AIA格式打包,實時保存在遠程服務器上,只要開發者能上網,就能隨時隨地打開自己創建的項目。App Inventor還內置了模擬器和AI伴侶,可以通過模擬器調試,或通過AI伴侶在手機中調試。利用App Inventor開發音樂制作、視頻互動、語音識別、GPS定位等移動設備上的高科技應用,也可以設計如小調查、小測驗、互動學習反饋等移動設備上的教育應用軟件。對于輕量級的手機終端應用開發,App Inventor無疑是最佳的選擇。

筆者所在單位因每學期學生放假旅游導致無法及時在PC終端查詢考試成績,面對大批量的出游學生,筆者擬利用JSON構建Web API,并使用App Inventor來開發一個基于Android系統的成績查詢應用。

● 成績查詢應用設計

該應用程序要求功能單一,界面簡潔,安全實用,少耗流量。據此,成績查詢應用設計流程如下:利用App Inventor構建的Android手機終端應用在初始化的時候獲取Web API中當前考試的主題,顯示在“考試主題”欄。學生輸入統考號和姓名,點擊“查詢”按鈕,應用程序將請求發送給服務器端ASP構建的Web API,Web API通過分析數據的合法性,打包成SQL指令向網絡數據庫發起請求,網絡數據庫根據查詢結果返回數據集給Web API,Web API把數據集格式化為JSON數據格式,最終給應用程序調用,顯示查詢結果。圖1描述了上述的整個過程。

通過對學生參加考試后查詢成績這個事件分析得知,學生實體與成績實體和排名實體發生聯系。對于學生來說,學生實體有統考號和姓名兩個屬性;對于學生的成績來說,成績實體和排名實體均有語文、數學、英語、物理、化學、政治、歷史、地理、生物、總分這些屬性,并且一個學生對應著多個成績和多個排名,他們是一對多的關系。圖2描述了學生參加考試的實體聯系。

按照學生參加考試的實體聯系圖的描述,很容易設計出數據庫中表的結構。為方便在實際使用中將Excel數據表直接導出為數據庫中對應的數據表,筆者將考試主題作為數據表表名,將“學生”、“成績”、“排名”實體的屬性作為字段,具體見表2數據表各字段設計。

● 成績查詢應用開發

根據以上設計,筆者從服務器端構建Web API和在Android終端構建應用程序兩方面說明成績查詢應用的開發過程。

1.服務器端利用ASP構建JSON格式的Web API

在JSON官網中下載JSON_2.0.4.asp作為JSON的類被調用,通過Set o = jsObject( )定義一個名稱為o的JSON類對象,旗下有四個子對象,名稱為“主題”、“學生”、“各科成績”、“各科排信名”,定義如下:Set o("主題") = jsObject( )、Set o("學生") = jsObject( )、Set o("各科成績") = jsObject( )、Set o("各科排名") = jsObject( )。獲取數據表的表名作為查詢成績的“主題”,通過request( )獲取Android終端傳遞過來的統考號,并將統考號關聯數據表中學生的信息,將“統考號”、“姓名”作為“學生”對象的"名稱:值"對,同理將關聯的學生各科科目和各科成績作為“各科成績”對象的"名稱:值",將關聯的學生各科科目和各科排名作為“各科排名”對象的"名稱:值"對,通過表3代碼生成完整的JSON對象供Android終端調用。至此,關聯服務器和終端的Web API構建完成。

2.利用App Inventor構建Android終端應用程序

終端程序的界面設計如表4所示,設計界面用到了一個屏幕組件、八個標簽組件、兩個文本輸入框組件、一個按鈕組件、兩個表格布局組件和兩個Web客戶端組件等,其中Web客戶端組件為非可視組件,它是使用異步通信協議來獲取Web API的JSON數據的。

終端程序的代碼設計分兩部分:程序的初始化和查詢按鈕事件。當程序初始化的時候,通過Web組件的地址請求返回數據表的名稱作為本次查詢的考試主題,顯示在lbsubject標簽里。當用戶輸入統考號和姓名后,點擊“查詢”按鈕觸發按鈕事件,程序按照Web API的地址格式生成URL供Web組件調用,向Web API發出GET請求。當Web組件獲得JSON格式的文本后,將文本按照JSON格式解碼,生成類似于("主題":"2013年高考","學生":("021600201":"陳寶儀"),"各科成績":("021600201":("語文":"117.5","數學":"120")),"各科排名":("021600201":("語文排名":"34","數學排名":"50")))的鍵值對,檢查輸入的統考號和姓名合法后,進一步查找“各科成績”和“各科排名”的鍵值對,最后作輸出格式化處理,輸出到Android系統的終端。如果檢查到輸入的信息不合法,則輸出“輸入的信息不正確”的提示。關鍵源代碼如上頁圖3所示。

筆者利用上述技術開發的Web API部署在服務器端Windows 2003系統的IIS里,以MYSQL作為后臺數據庫,用App Inventor生成的apk文件運行在Android系統里。筆者在上述運行環境中多次測試成功并實際應用到學生群體中。用到的源文件可從以下地址下載,鏈接:http://pan.baidu.com/share/link?shareid=3258655633&uk=707995714&third=15,密碼:4sq5。

猜你喜歡
學生
快把我哥帶走
親愛的學生們,你們并沒有被奪走什么
英語文摘(2020年9期)2020-11-26 08:10:12
如何喚醒學生自信心
甘肅教育(2020年6期)2020-09-11 07:45:16
怎樣培養學生的自信
甘肅教育(2020年22期)2020-04-13 08:10:54
如何加強學生的養成教育
甘肅教育(2020年20期)2020-04-13 08:04:42
“學生提案”
當代陜西(2019年5期)2019-11-17 04:27:32
《李學生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學生
學生寫話
學生寫的話
主站蜘蛛池模板: 国产一二三区视频| 亚洲婷婷六月| 欧美a在线看| 国产精品播放| 亚洲另类国产欧美一区二区| 国产成人一区免费观看| 日韩一区精品视频一区二区| 久久精品免费国产大片| 一本大道香蕉中文日本不卡高清二区| 成人福利在线观看| www.精品国产| V一区无码内射国产| 亚洲天堂2014| 青青操国产视频| 色香蕉影院| 欧美国产精品拍自| 青青久在线视频免费观看| 亚洲制服中文字幕一区二区| 亚洲一区二区三区麻豆| 久久综合九九亚洲一区| 亚洲欧美另类视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲视频一区| 日本91在线| 国产福利观看| 99在线国产| 国产簧片免费在线播放| 亚洲色图欧美一区| 成人午夜久久| 欧美三级不卡在线观看视频| 欧美午夜在线观看| 亚洲精品无码日韩国产不卡| 久久久无码人妻精品无码| 伊人中文网| 欧美黄网在线| 中文字幕va| 日韩国产无码一区| 美女免费精品高清毛片在线视| 91在线视频福利| 99热这里只有精品在线播放| 激情网址在线观看| 天天综合天天综合| 老熟妇喷水一区二区三区| 亚洲中文无码av永久伊人| 日韩第一页在线| 91福利片| 日本高清有码人妻| 在线亚洲精品福利网址导航| 九九久久精品免费观看| 一本大道无码日韩精品影视| 欧美亚洲国产精品第一页| a在线亚洲男人的天堂试看| 性激烈欧美三级在线播放| 国产青榴视频| 九九久久99精品| 亚洲V日韩V无码一区二区| 亚洲成年网站在线观看| 亚洲一区无码在线| 国产精品香蕉| 91精品国产91久无码网站| 亚洲第一综合天堂另类专| 99久久精品美女高潮喷水| 免费一级无码在线网站 | AV熟女乱| 亚洲av无码牛牛影视在线二区| AV熟女乱| 91久久国产成人免费观看| 欧美亚洲国产日韩电影在线| 91久草视频| 国产毛片基地| 国产男人的天堂| 波多野结衣亚洲一区| 亚洲妓女综合网995久久| 一级片一区| 漂亮人妻被中出中文字幕久久| 国产成人永久免费视频| 在线网站18禁| 久久精品波多野结衣| 91精品国产综合久久不国产大片| 国产麻豆精品手机在线观看| 2021精品国产自在现线看| 亚洲第一黄片大全|