天天看點

《Android和PHP開發最佳實踐 》一3.3 使用JSON通信

實際上,第1章中介紹如何結合android和php學習時,我們就曾經提到過json協定,本節我們就來學習一下這個協定的基本内容。json是javascript對象表示法(javascript object notation)的簡稱,json協定源自javascript腳本語言的對象持久化表示方法,由于這種表示法比較簡單易懂,而且傳輸的資料也比較小巧(相對于xml來說應該算是非常小巧了),是以,近年來被廣泛地用于網際網路應用的資料封裝。

首先,我們來學習一下json協定的資料表示方法。在json協定中,最基本的資料結構隻有兩種。第一種是數組結構,該結構類似于php中的清單數組,結構如下。

第二種是對象結構,該結構非常類似于php中的散列數組,結構如下。

當然,将以上兩種結構結合起來就可以産生其他形式的資料結構,比如對象數組,也就是類似于php中的“散列數組清單”的形式,結構如下。

另外,json協定幾乎支援所有主流語言的用戶端,當然也包括php語言。在php中使用json非常友善,在php 5.2版本之後,php語言已經内置了json的加解碼函數,即json_encode和json_decode。接下來,讓我們來分析一下代碼清單3-14中的邏輯代碼。

代碼清單 3-14

以上代碼示範了如何使用php内置的加解碼函數來進行json資料和php數組結構之間的互相轉換,運作結果如圖3-14所示。

《Android和PHP開發最佳實踐 》一3.3 使用JSON通信

這裡随便提一下,在android中我們使用org.json包來進行json加解碼工作,json數組格式可使用jsonarray類處理,而對象結構則使用jsonobject類處理。關于android使用json的具體使用方法和執行個體我們将在本書第7章的7.3.3節中做詳細介紹。