亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用JSON構(gòu)建Android終端的Web API

        2015-06-05 01:37:24趙超鴻
        中國信息技術(shù)教育 2015年5期
        關(guān)鍵詞:學(xué)生

        趙超鴻

        摘要:筆者通過對JSON數(shù)據(jù)格式的研究,結(jié)合實際需求,利用ASP實現(xiàn)對Web API的自定義構(gòu)建,提供給AppInventor調(diào)用,從而實現(xiàn)了Web API在基于Android系統(tǒng)的學(xué)生成績查詢的應(yīng)用。

        關(guān)鍵詞:JSON、Web API;AppInventor;"名稱:值"對;鍵值對

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

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

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

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

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

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

        筆者所在單位因每學(xué)期學(xué)生放假旅游導(dǎo)致無法及時在PC終端查詢考試成績,面對大批量的出游學(xué)生,筆者擬利用JSON構(gòu)建Web API,并使用App Inventor來開發(fā)一個基于Android系統(tǒng)的成績查詢應(yīng)用。

        ● 成績查詢應(yīng)用設(shè)計

        該應(yīng)用程序要求功能單一,界面簡潔,安全實用,少耗流量。據(jù)此,成績查詢應(yīng)用設(shè)計流程如下:利用App Inventor構(gòu)建的Android手機終端應(yīng)用在初始化的時候獲取Web API中當(dāng)前考試的主題,顯示在“考試主題”欄。學(xué)生輸入統(tǒng)考號和姓名,點擊“查詢”按鈕,應(yīng)用程序?qū)⒄埱蟀l(fā)送給服務(wù)器端ASP構(gòu)建的Web API,Web API通過分析數(shù)據(jù)的合法性,打包成SQL指令向網(wǎng)絡(luò)數(shù)據(jù)庫發(fā)起請求,網(wǎng)絡(luò)數(shù)據(jù)庫根據(jù)查詢結(jié)果返回數(shù)據(jù)集給Web API,Web API把數(shù)據(jù)集格式化為JSON數(shù)據(jù)格式,最終給應(yīng)用程序調(diào)用,顯示查詢結(jié)果。圖1描述了上述的整個過程。

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

        按照學(xué)生參加考試的實體聯(lián)系圖的描述,很容易設(shè)計出數(shù)據(jù)庫中表的結(jié)構(gòu)。為方便在實際使用中將Excel數(shù)據(jù)表直接導(dǎo)出為數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)表,筆者將考試主題作為數(shù)據(jù)表表名,將“學(xué)生”、“成績”、“排名”實體的屬性作為字段,具體見表2數(shù)據(jù)表各字段設(shè)計。

        ● 成績查詢應(yīng)用開發(fā)

        根據(jù)以上設(shè)計,筆者從服務(wù)器端構(gòu)建Web API和在Android終端構(gòu)建應(yīng)用程序兩方面說明成績查詢應(yīng)用的開發(fā)過程。

        1.服務(wù)器端利用ASP構(gòu)建JSON格式的Web API

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

        2.利用App Inventor構(gòu)建Android終端應(yīng)用程序

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

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

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

        猜你喜歡
        學(xué)生
        快把我哥帶走
        親愛的學(xué)生們,你們并沒有被奪走什么
        英語文摘(2020年9期)2020-11-26 08:10:12
        如何喚醒學(xué)生自信心
        甘肅教育(2020年6期)2020-09-11 07:45:16
        怎樣培養(yǎng)學(xué)生的自信
        甘肅教育(2020年22期)2020-04-13 08:10:54
        如何加強學(xué)生的養(yǎng)成教育
        甘肅教育(2020年20期)2020-04-13 08:04:42
        “學(xué)生提案”
        《李學(xué)生》定檔8月28日
        電影(2018年9期)2018-11-14 06:57:21
        趕不走的學(xué)生
        學(xué)生寫話
        學(xué)生寫的話
        99国产免费热播视频| 精品久久久久久无码中文野结衣| 超清精品丝袜国产自在线拍| 国产成人亚洲精品91专区手机| 91精品亚洲一区二区三区| 精品人妻少妇丰满久久久免| 久久精品无码一区二区日韩av| a级国产乱理论片在线观看| 在线观看亚洲你懂得| 亚洲美女一区二区三区三州| 国产日韩精品suv| 国产成人久久精品77777综合| 久久久久久岛国免费网站| 自拍偷拍韩国三级视频| 久人人爽人人爽人人片av| 97精品伊人久久大香线蕉| 亚洲AV手机专区久久精品| 高清不卡日本v二区在线| …日韩人妻无码精品一专区| 在线免费黄网| 综合人妻久久一区二区精品| 亚洲综合色区一区二区三区| 99国内精品久久久久久久| 无码人妻精品一区二区三区下载| av人妻在线一区二区三区| 国产色系视频在线观看| 中文字幕无线码中文字幕| 国产亚洲一区二区三区夜夜骚| 成人大片免费视频播放一级| 久久久久久人妻一区精品| YW亚洲AV无码乱码在线观看| 久久久国产精品三级av| 国产午夜精品无码| 精品国精品国产自在久国产应用| 伊人不卡中文字幕在线一区二区| 99久久婷婷国产亚洲终合精品 | 精品国产18禁久久久久久久| 青青草视频在线免费视频| 国产精品无码素人福利| 亚洲av色先锋资源电影网站| 亚洲视频一区二区久久久|