李海平 陳榮征 李海文
(廣東職業(yè)技術學院信息工程系,廣東 佛山 528041)
基于JSON的Android校園助手研究與設計
李海平 陳榮征 李海文
(廣東職業(yè)技術學院信息工程系,廣東 佛山 528041)
本文設計了一款Android校園助手軟件,客戶端采用Android Studio作為開發(fā)平臺,以JSON數(shù)據(jù)格式為載體。詳細闡述了JSON數(shù)據(jù)格式的使用,Gson在校園助手中數(shù)據(jù)JSON格式化及JSON數(shù)據(jù)對象化的應用,以及客戶端和服務端的交互,這些實現(xiàn)技術對開發(fā)相關項目具有現(xiàn)實的參考價值。
Android Studio;JSON;Gson;AsyncHttpClient;PHP
隨著手機網絡的發(fā)展,開發(fā)針對學生服務的手機App的需求越來越強烈。本文設計的校園助手App得到廣東大學生科技創(chuàng)新培育專項資金支持,校園助手主要有以下功能:登錄、校園新聞瀏覽、就業(yè)、信息圈、課表、成績查詢等。本文重點介紹了JSON數(shù)據(jù)格式的使用,主要包括JSON基本語法、校園助手中數(shù)據(jù)JSON格式化、JSON數(shù)據(jù)對象化,以及校園助手客戶端和服務端的JSON數(shù)據(jù)交互。
2.1 選擇JSON原因
JSON即JavaScript Object Notation[1],是一種輕量級的數(shù)據(jù)格式,有意義的字符串,是由特定字符組成不同含義的數(shù)據(jù)格式。雖然它是輕量級的,但是其數(shù)據(jù)描述能力強大,不僅能夠表示常見的數(shù)據(jù)類型,如String,Boolean,Number,還可以表示數(shù)組以及一些復雜的對象。
JSON數(shù)據(jù)格式不像XML描述那樣有太多冗余的內容,用它作為網絡數(shù)據(jù)交互,能夠減少流量,加快網絡訪問速度,所以在本校園助手中選用JSON作為數(shù)據(jù)交互格式。
2.2 JSON語法
2.2.1 JSON值(value)標識

圖1 值(Value)標識

圖2 值(Value)標識示例
如圖1所示,值(Value)可以表示的類型為:字符(string)、數(shù)值(number)、對象(object)、數(shù)組(array)、布爾型(true,false),空(null);圖2所示是相應的示例。
2.2.2 JSON對象(object)標識
JSON對象(object)用大括號{}標識(如圖3所示),一個對象每一項用加雙引號的字符串作為key標識項名稱;中間加冒號標識取值;右邊是這個key所對應的值(value);項與項之間用逗號區(qū)分。一個學生及其家里聯(lián)系方式等基本信息可以用以下對象表示:
{
“Name”:“小明”,
“Age”:19,
“Num”:2014001,
“Interests”:[“跑步”,“健身”],
“HomeContact”:{
“HomeContactName”:“曉紅”,
“HomePhone”:“138**********”,
“HomeAddress”:“廣東省******”
}
}

圖3 對象(object)標識
2.2.3 JSON數(shù)組(array)標識
數(shù)組(array)用方括號[]標識數(shù)組(如圖4所示),一個學生Interests信息數(shù)組表示如下:
[“跑步”,“健身”]

圖4 數(shù)組(array)標識
3.1 Android Studio配置Gson庫環(huán)境
Gson是Google提供的用來進行數(shù)據(jù)JSON格式化和JSON數(shù)據(jù)解析的開源庫[2],從 http://code.google.com/p/google-gson/下載對應jar包,校園助手項目采用gson-2.2.4. jar。
在已經建好的校園助手項目中添加jar包:把下載好的gson-2.2.4.jar文件拷貝(Copy),粘貼(Past)到app/libs文件夾,之后Android Studio自動列出該文件。選擇app文件夾右鍵,選擇菜單項“Open Module Settings”,在彈出的對話框中選擇添加(+),再選擇File Dependency,在新彈出的對話框中選擇gson-2.2.4.jar文件,把gson-2.2.4.jar文件作為該project的依賴項,在app目錄下的一個文件build.gradle就自動添加gson-2.2.4.jar編譯選項。通過以上步驟配置好Gson環(huán)境就可以編寫相應的JSON程序代碼。
3.2 校園助手中數(shù)據(jù)JSON格式化
3.2.1 校園助手App中的類Student和HomeContact
要將一個數(shù)據(jù)對象轉為JSON格式化,在Android Studio校園助手項目中要先定義相應的類Student和HomeContact,如下所示:
public class Student{
String Name;
int Age;
int Num;
ArrayList public Student(){ Interests=new ArrayList } HomeContact homeContact; } public class HomeContact{ String HomeContactName; String HomePhone; String HomeAddress; } 3.2.2 校園助手App中數(shù)據(jù)對象轉化為JSON數(shù)據(jù)格式 Gson gson=new Gson(); Student student=new Student(); student.Name="小明"; student.Age=20; student.Num=2014001; student.Interests.add("籃球"); student.Interests.add("健身"); student.Interests.add("羽毛球"); HomeContact homeContact=new HomeContact(); homeContact.HomeAddress="廣東省**********"; homeContact.HomePhone="138*******"; homeContact.HomeContactName="曉紅"; student.homeContact=homeContact; String strJSON=gson.toJson(student); 導入import com.google.gson.Gson包,初始化Student對象和HomeContact對象,產生Gson對象,調用其toJson方法,把student對象和HomeContact轉為JSON數(shù)據(jù)格式:{"Interests":["籃球","健身","羽毛球"],"Name":"小明","homeContact":{"HomeAddress":"廣東省**********","HomeContact-Name":" 曉 紅 ","HomePhone":"138*******"},"Age":20, "Num":2014001}。這個JSON字符串格式就可以作為數(shù)據(jù)發(fā)送到服務端。 3.2.3 JSON字符串轉化為Student對象 調用Gson中的fromJson方法把JSON數(shù)據(jù)格式轉為Student類,如圖5所示,其轉為Student類對象后HomeContact類對象也被自動創(chuàng)建出來(調試模式查看Student類)。Student student2=gson.fromJson(strJSON,Student.class); 校園助手客戶端把數(shù)據(jù)JSON格式化,通過AsyncHttp-Client發(fā)送數(shù)據(jù)到服務端,服務端采用PHP把客戶端發(fā)送過來的JSON數(shù)據(jù)用json_decode解析[3],然后再對數(shù)據(jù)進行處理,如果需要服務端返回數(shù)據(jù),PHP服務端需調用json_encode對數(shù)據(jù)JSON格式化,返回給客戶端。以下是校園助手登錄功能相關代碼實現(xiàn)(如代碼塊1和代碼塊2)。 代碼塊1客戶端調用代碼塊2 PHP服務端響應AsyncHttpClient client=newAsyncHttpClient(); Map 校園助手項目成功地利用JSON數(shù)據(jù)格式搭建了Android客戶端和服務端數(shù)據(jù)交互框架,實現(xiàn)了以下基本功能:登錄、校園新聞瀏覽、就業(yè)、信息圈、課表、成績查詢等。還有不少功能由于時間緊還沒有來得及完善,但是有了這樣的JSON數(shù)據(jù)交互框架,對完善系統(tǒng)提供了質量保證。 [1]介紹JSON[EB/OL].http://www.json.org/json-zh.html. [2]耿東久,索岳,陳渝,等.基于Android手機的遠程訪問和控制系統(tǒng)[J].計算機應用,2011,3 1(2):2 0-2 1. [3]傳智播客高教產品研發(fā)部.Android移動應用基礎教程[M].北京:中國鐵道出版社,2014. Research and Design of Android Campus Assistant Based on JSON Li Haiping Chen Rongzheng Li Haiwen This paper develops an Android campus assistant app,which uses Android Studio as the development platform,and uses JSON data format as the carrier.This paper elaborates on the usage of the JSON data format,the application of Gson in JSON formatting data and JSON data objectification,and the interaction between client and server.The realization of these technologies has practical reference value to the development of related project. Android Studio;JSON;Gson;AsyncHttpClient;PHP TP311.52 A 1008-6609(2016)10-0024-03 李海平(19 8 2-),男,江西寧都人,碩士,研究方向為移動應用開發(fā)、軟件技術。 2015廣東大學生科技創(chuàng)新培育專項,項目編號:p d j h 2016 b058 4;2016年度廣東職業(yè)技術學院教學改革項目,項目編號:J201608。4 校園助手客戶端與服務端交互

5 結束語
(Guangdong Polytechnic,Foshan 528041,Guangdong)