版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
項目7藍(lán)牙小車——藍(lán)牙通信本項目學(xué)習(xí)任務(wù)Android經(jīng)典藍(lán)牙API的使用Android低功耗藍(lán)牙API的使用1.Android經(jīng)典藍(lán)牙API的使用藍(lán)牙技術(shù)是一種低成本低功耗的近距離無線通信技術(shù),能為手機、無線耳機、筆記本電腦及相關(guān)外設(shè)之間進行無線信息交換。藍(lán)牙Bluetooth2兩個藍(lán)牙設(shè)備通信時,必須一個為主角色,一個為從角色。當(dāng)一個藍(lán)牙設(shè)備以主角色發(fā)起通信時,需要知道對方的地址、配對密碼等信息藍(lán)牙通信的一般步驟如下:啟動藍(lán)牙設(shè)備掃描附近設(shè)備連接設(shè)備發(fā)送指令/接收指令關(guān)閉連接藍(lán)牙通信的步驟BluetoothBluetoothAdapter:本地藍(lán)牙適配器,是所有藍(lán)牙交互的入口點,表示藍(lán)牙設(shè)備自身的一個藍(lán)牙設(shè)備適配器,整個系統(tǒng)只有一個藍(lán)牙適配器。通過它可以發(fā)現(xiàn)其他藍(lán)牙設(shè)備,查詢綁定(配對)設(shè)備的列表,使用已知的Mac地址實例化BluetoothDevice以及創(chuàng)建BluetoothServerSocket用來偵聽來自其他設(shè)備的通信。BluetoothDevice:表示遠(yuǎn)程的藍(lán)牙設(shè)備,利用它可以通過BluetoothSocket請求與某個遠(yuǎn)程設(shè)備建立連接,或查詢有關(guān)該設(shè)備的信息,例如設(shè)備的名稱、地址、綁定狀態(tài)等。藍(lán)牙開發(fā)的主要類BluetoothBluetoothSocket:表示藍(lán)牙套接字接口(與TCPSocket相似),Android應(yīng)用可通過InputStream和OutputStream與其他藍(lán)牙設(shè)備交換數(shù)據(jù)。BluetoothServerSocket:表示用于偵聽傳入請求的服務(wù)器套接字(類似于TCPServerSocket),要連接兩臺Android設(shè)備,其中一臺設(shè)備必須使用此類開發(fā)一個服務(wù)器套接字。當(dāng)一臺遠(yuǎn)程藍(lán)牙設(shè)備向此設(shè)備發(fā)出連接請求時,BluetoothServerSocket將會在接受連接后返回已連接的BluethoothSocket。藍(lán)牙開發(fā)的主要類Bluetooth獲取本地藍(lán)牙適配器BluetoothAdaptermBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();打開/關(guān)閉手機藍(lán)牙打開手機藍(lán)牙:mBluetoothAdapter.enable();關(guān)閉手機藍(lán)牙:mBluetoothAdapter.disable();掃描/取消藍(lán)牙設(shè)備掃描藍(lán)牙設(shè)備:mBluetoothAdapter.startDiscovery();取消掃描藍(lán)牙設(shè)備,減少資源的消耗:mBluetoothAdapter.cancelDiscovery();藍(lán)牙相關(guān)操作Bluetooth添加藍(lán)牙廣播接受者:
IntentFilterfilter=newIntentFilter(); //開始掃描的廣播
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); //掃描完成的廣播
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); //發(fā)現(xiàn)一個可用的設(shè)備的廣播
filter.addAction(BluetoothDevice.ACTION_FOUND); mBluetoothReceiver=newBluetoothReceiver(); //注冊監(jiān)聽
registerReceiver(mBluetoothReceiver,filter);藍(lán)牙相關(guān)操作Bluetooth藍(lán)牙廣播接受者藍(lán)牙相關(guān)操作Bluetooth注銷廣播接受者藍(lán)牙相關(guān)操作Bluetooth連接設(shè)備藍(lán)牙相關(guān)操作Bluetooth發(fā)送數(shù)據(jù)藍(lán)牙相關(guān)操作Bluetooth接收數(shù)據(jù)藍(lán)牙相關(guān)操作Bluetooth2.Android低功耗藍(lán)牙API的使用低功耗藍(lán)牙低功耗藍(lán)牙,是藍(lán)牙技術(shù)聯(lián)盟設(shè)計和銷售的一種個人局域網(wǎng)技術(shù),相較經(jīng)典藍(lán)牙,低功耗藍(lán)牙在保持同等通信范圍的同時顯著降低功耗和成本。這一特性使得Android應(yīng)用程序能夠與一系列對能耗有著嚴(yán)格要求的BLE設(shè)備(如智能手環(huán)、藍(lán)牙耳機、近程傳感器、心率監(jiān)測器等)進行高效通信。此外,BLE除了廣泛應(yīng)用于鄰近設(shè)備間進行少量的數(shù)據(jù)傳輸之外,還可以與近程傳感器進行交互,為其當(dāng)前所處位置提供個性化的服務(wù)。低功耗藍(lán)牙Android應(yīng)用中低功耗藍(lán)牙通信的流程與經(jīng)典藍(lán)牙通信流程類似,但是它們所使用的API并不完全相同。在Android4.3版本(API級別18)中,對藍(lán)牙低功耗(BLE)技術(shù)引入了內(nèi)置系統(tǒng)支持,并提供相應(yīng)的API,使得應(yīng)用程序可以方便地發(fā)現(xiàn)設(shè)備、查詢服務(wù)和傳輸信息。注意:當(dāng)用戶利用藍(lán)牙低功耗(BLE)將其Android設(shè)備與其他設(shè)備進行配對時,用戶設(shè)備上的所有應(yīng)用程序均可訪問這兩個設(shè)備間傳輸?shù)臄?shù)據(jù),可在應(yīng)用層對數(shù)據(jù)進行編碼加密,以確保數(shù)據(jù)安全性。關(guān)鍵術(shù)語和概念通用屬性配置文件(GATT)——GATT被視為一種通用的規(guī)范,其主要內(nèi)容是針對在BLE鏈路上發(fā)送和接收簡短數(shù)據(jù)片段的特性,這些數(shù)據(jù)片段被稱為“屬性”。當(dāng)前,所有低功耗應(yīng)用配置文件均以GATT為基礎(chǔ)。藍(lán)牙特別興趣小組(BluetoothSIG)為低功耗設(shè)備定義了多種配置文件。這些配置文件作為描述設(shè)備在特定應(yīng)用中如何工作的規(guī)范,具有極為重要的意義。請注意,一臺設(shè)備可以實現(xiàn)多個配置文件。例如,一臺設(shè)備可能同時包含用于監(jiān)測心率和電池電量的應(yīng)用。關(guān)鍵術(shù)語和概念在BLE連接中,存在兩種核心角色:中央設(shè)備(Central)和外圍設(shè)備(Peripheral)。在建立連接的過程中,中央設(shè)備負(fù)責(zé)掃描和尋找可連接的外圍設(shè)備,而外圍設(shè)備則負(fù)責(zé)廣播自身以供中央設(shè)備發(fā)現(xiàn)。在BLE連接中,必須有一個設(shè)備扮演中央角色,另一個設(shè)備扮演外圍角色。當(dāng)兩個藍(lán)牙設(shè)備建立連接后,它們使用GATT(GenericAttributeProfile)協(xié)議進行通信。在GATT協(xié)議中,存在兩種核心角色:GATT服務(wù)器(GATTServer)和GATT客戶端(GATTClient)。在建立連接后,這兩個角色決定了兩個設(shè)備如何相互通信。Android中BLE藍(lán)牙的使用(1)配置BLE使用權(quán)限BLE藍(lán)牙的使用需要在AndroidManifest中配置一些權(quán)限,常見的藍(lán)牙權(quán)限配置如下:<uses-permissionandroid:name="android.permission.BLUETOOTH"/>
<uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permissionandroid:name="android.permission.BLUETOOTH_CONNECT"/>
<uses-permissionandroid:name="android.permission.BLUETOOTH_SCAN"/>
上述權(quán)限中,BLUETOOTH是使用藍(lán)牙的權(quán)限,BLUETOOTH_ADMIN是啟動設(shè)備發(fā)現(xiàn)或操縱藍(lán)牙的權(quán)限。BLE藍(lán)牙通常與位置相關(guān)聯(lián),因此經(jīng)常需要聲明ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION權(quán)限。此外,還有藍(lán)牙連接BLUETOOTH_CONNECT和藍(lán)牙掃描BLUETOOTH_SCAN的權(quán)限。如果需要聲明應(yīng)用僅適用于支持BLE的設(shè)備,需要在AndroidManifest中添加以下內(nèi)容:<uses-featureandroid:name="android.hardware.bluetooth_le"android:required="true"/>
如果希望應(yīng)用適用于不支持BLE的設(shè)備,則仍將此元素添加到應(yīng)用清單中,但設(shè)置required="false"。Android中BLE藍(lán)牙的使用(2)啟用BLE啟用BLE首先要獲取BluetoothAdapter,BluetoothAdapter是Android設(shè)備自身的藍(lán)牙適配器,整個系統(tǒng)有一個藍(lán)牙適配器??梢允褂胓etSystemService()返回BluetoothManager的實例,然后使用該實例獲取適配器。然后調(diào)用isEnabled(),檢查當(dāng)前是否已啟用藍(lán)牙。如果此方法返回false,則表示藍(lán)牙處于停用狀態(tài)。如果并未啟用,則提示用戶前往“Settings”啟用藍(lán)牙。Android中BLE藍(lán)牙的使用(3)查找BLE設(shè)備查找BLE設(shè)備可以使用startLeScan()方法,此方法將LeScanCallback作為參數(shù)。在LeScanCallback回調(diào)方法中會返回掃描的結(jié)果。掃描非常耗電,建議找到所需設(shè)備后,立即停止掃描。此外,不要進行循環(huán)掃描,并設(shè)置掃描時間限制。如果需要掃描特定類型的外圍設(shè)備,則可調(diào)用startLeScan(UUID[],BluetoothAdapter.LeScanCallback),它會提供一組UUID對象,用于指定應(yīng)用支持的GATT服務(wù)。Android中BLE藍(lán)牙的使用(4)連接到GATT服務(wù)器在與BLE設(shè)備進行交互之前,首先需要連接到GATT服務(wù)器,主要是藍(lán)牙BLE設(shè)備上特定的GATT服務(wù)器。Android應(yīng)用可以使用connectGatt()方法來進行連接,該方法需要三個參數(shù):一個Context對象、autoConnect(布爾值,用于指示是否在可用時自動將我們連接到的BLE設(shè)備)以及BluetoothGattCallback。Android應(yīng)用在此扮演了GATT客戶端的角色。BluetoothGattCallback用于向客戶端傳遞結(jié)果(例如連接狀態(tài))以及GATT客戶端的進一步操作。Android中BLE藍(lán)牙的使用(5)讀取BLE屬性當(dāng)Android應(yīng)用成功連接到GATT服務(wù)器并發(fā)現(xiàn)服務(wù)后,應(yīng)用便可讀取和寫入屬性。(6)接收GATT通知BLE應(yīng)用通常會要求BLE設(shè)備上的特定特征發(fā)生變化時收到通知。使用setCharacteristicNotification()方法可以設(shè)置特征變化的通知。在啟用針對特定特性的通知后,一旦遠(yuǎn)程設(shè)備上的該特性發(fā)生更改,就會觸發(fā)onCharacteristicChanged()回調(diào)函數(shù)。(7)關(guān)閉客戶端應(yīng)用在應(yīng)用程序完成對BLE設(shè)備的使用后,應(yīng)調(diào)用close()方法,以便系統(tǒng)可以適當(dāng)?shù)蒯尫刨Y源。感謝觀看Thankyou項目8智能家居——網(wǎng)絡(luò)通信本項目學(xué)習(xí)任務(wù)TCP通信HTTP通信1.TCP通信的原理TCP協(xié)議是面向連接的通信協(xié)議,即在傳輸數(shù)據(jù)前先在發(fā)送端和接收端建立邏輯連接,然后再傳輸數(shù)據(jù),保證了兩臺計算機之間可靠無差錯的數(shù)據(jù)傳輸。TCP協(xié)議傳送速度較慢,但傳送的數(shù)據(jù)比較可靠。由于TCP協(xié)議的面向連接特性,它可以保證傳輸數(shù)據(jù)的安全性和完整性,所以是一個被廣泛采用的協(xié)議,例如在下載文件時,如果數(shù)據(jù)接收不完整,將會導(dǎo)致文件數(shù)據(jù)丟失而不能被打開,因此,下載文件時必須采用TCP協(xié)議。網(wǎng)絡(luò)編程基礎(chǔ)TCP通信同UDP通信一樣,都能實現(xiàn)兩臺計算機之間的通信,通信的兩端則都需要創(chuàng)建Socket對象。TCP通信與UDP通信的其中一個主要區(qū)別在于,UDP中只有發(fā)送端和接收端,不區(qū)分客戶端與服務(wù)器端,計算機之間可以任意地發(fā)送數(shù)據(jù);而TCP通信是嚴(yán)格區(qū)分客戶端與服務(wù)器端的,在通信時,必須先由客戶端去連接服務(wù)器端才能實現(xiàn)通信,服務(wù)器端不可以主動連接客戶端。TCP通信JDK中提供了ServerSocket類,表示服務(wù)器端;Socket類表示客戶端。通信時,首先要創(chuàng)建代表服務(wù)器端的ServerSocket對象,該對象相當(dāng)于開啟一個服務(wù),并等待客戶端的連接;然后創(chuàng)建代表客戶端的Socket對象,并向服務(wù)器端發(fā)出連接請求,服務(wù)器端響應(yīng)請求,兩者建立連接后可以正式進行通信。2TCP通信ServerSocket()該構(gòu)造方法在創(chuàng)建ServerSocket對象時并沒有指定端口號,使用時還需要調(diào)用bind(SocketAddressendpoint)方法將其綁定到指定的端口號上。ServerSocket(intport)該構(gòu)造方法在創(chuàng)建ServerSocket對象時,可以綁定到指定的端口號上。如果port參數(shù)值為0,此時系統(tǒng)就會分配一個未被其他程序占用的端口號。由于客戶端需要根據(jù)指定的端口號來訪問服務(wù)器端程序,因此端口號隨機分配的情況并不常用,通常都會給服務(wù)器端指定一個端口號。ServerSocket——常用構(gòu)造方法TCP通信ServerSocket——常用方法方法聲明功能描述Socketaccept()該方法用于等待客戶端的連接,在客戶端連接之前一直處于阻塞狀態(tài),如果有客戶端連接就會返回一個與之對應(yīng)的Socket對象InetAddressgetInetAddress()該方法用于返回一個InetAddress對象,該對象中封裝了ServerSocket綁定的IP地址booleanisClosed()該方法用于判斷ServerSocket對象是否為關(guān)閉狀態(tài),如果是關(guān)閉狀態(tài)則返回true,反之則返回falsevoidbind(SocketAddressendpoint)該方法用于將ServerSocket對象綁定到指定的IP地址和端口號,其中參數(shù)endpoint封裝了IP地址和端口號TCP通信Socket()該構(gòu)造方法在創(chuàng)建Socket對象時,并沒有指定IP地址和端口號,創(chuàng)建對象后還需調(diào)用connect(SocketAddressendpoint)方法,才能完成與指定服務(wù)器端的連接,其中參數(shù)endpoint用于封裝IP地址和端口號。Socket(Stringhost,intport)該構(gòu)造方法在創(chuàng)建Socket對象時,會根據(jù)參數(shù)去連接在指定地址和端口上運行的服務(wù)器程序,其中參數(shù)host接收的是一個字符串類型的IP地址。Socket(InetAddressaddress,intport)該方法在使用上與第2個構(gòu)造方法類似,參數(shù)address用于接收一個InetAddress類型的對象,該對象用于封裝一個IP地址。Socket——常用構(gòu)造方法TCP通信Socket——常用方法方法聲明功能描述intgetPort()該方法用于返回此Socket連接的遠(yuǎn)程服務(wù)端的端口號InetAddressgetLocalAddress()該方法用于獲取Socket對象綁定的本地IP地址,并將IP地址封裝成InetAddress類型的對象返回voidclose()該方法用于關(guān)閉Socket連接,結(jié)束本次通信。在關(guān)閉Socket之前,應(yīng)將與Socket相關(guān)的所有的輸入/輸出流全部關(guān)閉,這是因為一個良好的程序應(yīng)該在執(zhí)行完畢時釋放所有的資源InputStreamgetInputStream()該方法返回一個InputStream類型的輸入流對象。如果該對象是由服務(wù)器端的Socket返回,就用于讀取客戶端發(fā)送的數(shù)據(jù);反之,用于讀取服務(wù)器端發(fā)送的數(shù)據(jù)OutputStreamgetOutputStream()該方法返回一個OutputStream類型的輸出流對象。如果該對象是由服務(wù)器端的Socket返回,就用于向客戶端發(fā)送數(shù)據(jù);反之,用于向服務(wù)器端發(fā)送數(shù)據(jù)TCP通信服務(wù)端與客戶端通信圖:TCP通信基于TCP協(xié)議的Socket通信的步驟:服務(wù)器:1、創(chuàng)建ServerSocket,綁定一個監(jiān)聽端口2、通過accept()方法監(jiān)聽客戶端請求3、建立連接后,通過輸入流讀取客戶端數(shù)據(jù),通過輸出流向客戶端發(fā)送數(shù)據(jù)4、關(guān)閉輸入/輸出流,關(guān)閉Socket客戶端:1、創(chuàng)建Socket,需要指明服務(wù)器的IP地址和端口號2、建立連接后,通過輸出流向服務(wù)器發(fā)送數(shù)據(jù),通過輸入流讀取服務(wù)器的響應(yīng)信息3、關(guān)閉輸入輸出流,關(guān)閉SocketTCP通信2.HTTP通信HTTP簡介HTTP全稱為超文本傳輸協(xié)議(HypertextTransferProtocol),是一種用于傳輸超文本(如網(wǎng)頁)的協(xié)議。它是在互聯(lián)網(wǎng)上應(yīng)用最廣泛的一種網(wǎng)絡(luò)協(xié)議。HTTP的工作方式是基于請求和響應(yīng)的模型。在一個HTTP請求-響應(yīng)周期中,一個客戶端(如一個瀏覽器)會向服務(wù)器發(fā)送一個請求,這個請求可以包含一個獲取特定資源(如一個網(wǎng)頁)的請求,也可以是提交其他類型數(shù)據(jù)的請求(如POST請求)。當(dāng)服務(wù)器收到這個請求后,它會處理這個請求并返回一個響應(yīng)。這個響應(yīng)可以是一個網(wǎng)頁的內(nèi)容,也可以是其他類型的數(shù)據(jù),如錯誤消息或重定向指令等。HTTP簡介HTTP為瀏覽器和App們提供了一個統(tǒng)一的接口,大量的App都在使用HTTP及其相關(guān)協(xié)議,確保網(wǎng)頁和App能方便的進行通信。HTTP通常使用URL(UniformResourceLocator,統(tǒng)一資源定位地址)來請求數(shù)據(jù)或提交信息。URL是指向互聯(lián)網(wǎng)資源的指針,資源可以是簡單的文件或目錄,也可以是對更復(fù)雜的對象的引用,例如對數(shù)據(jù)庫或搜索引擎的查詢。通常情況下,URL由協(xié)議名、主機、端口和資源組成,其格式為:protocal://host:port/resourceName。HTTP簡介在客戶端與服務(wù)器進行網(wǎng)絡(luò)通信的過程中,通常需要提供一些參數(shù)以指定所需訪問的資源,不同的參數(shù)會導(dǎo)致請求不同的資源。在HTTP協(xié)議中,常用的請求類型主要有兩種,即GET和POST。這兩種請求類型在技術(shù)上的差異主要體現(xiàn)在瀏覽器或客戶端在處理和封裝請求信息時的方式上。HTTP簡介GET方法通常用于從服務(wù)器獲取資源,這種請求不會對服務(wù)器上的數(shù)據(jù)造成任何更改。在這種情況下,參數(shù)的主要作用是告知服務(wù)器哪些數(shù)據(jù)可以提供作為響應(yīng)。這些參數(shù)被附加到請求的URL后面。使用GET方法發(fā)送的URL長度通常不能超過1KB。在HTML頁面中,資源鏈接通常使用GET方法作為典型的實現(xiàn)方式。當(dāng)使用POST請求方法提交數(shù)據(jù)時,所提交的數(shù)據(jù)以鍵值對的形式被封裝在請求的實體中。這種做法使得用戶無法通過瀏覽器直接查看發(fā)送的請求數(shù)據(jù)。因此,POST方式在安全性方面要比GET方式更為優(yōu)越。POST請求具有修改服務(wù)器端資源內(nèi)容的能力,例如處理表單、上傳文件等情況。HTTP簡介在請求過程中,提供給服務(wù)器的參數(shù)分為兩種主要類型:請求參數(shù)和控制參數(shù)。請求參數(shù)是與特定的業(yè)務(wù)和內(nèi)容相關(guān)的信息,例如網(wǎng)絡(luò)服務(wù)器的地址,它作為請求參數(shù)提供了服務(wù)器可達的地址信息。除此之外,附加的查詢字符串以及使用POST方式進行訪問時所附加的參數(shù)等也屬于請求參數(shù)的范疇。控制參數(shù)則主要用于從技術(shù)角度對訪問過程進行控制,如設(shè)置訪問超時時間、指定內(nèi)容編碼格式、向服務(wù)器提供當(dāng)前訪問客戶端的類型等信息,都可以被歸類為控制參數(shù)。HTTP簡介Android平臺為HTTP通信提供了全面的支持,通過標(biāo)準(zhǔn)的Java類HttpURLConnection來實現(xiàn)基于URL的請求和響應(yīng)功能。HttpURLConnection繼承自URLConnection類,它可以發(fā)送和接收各種類型和長度的數(shù)據(jù),同時也可以靈活地設(shè)置請求方法、超時時間等參數(shù)。HTTP簡介在真實的開發(fā)過程中,當(dāng)手機端與服務(wù)器端進行交互時,不可避免地需要將中文數(shù)據(jù)提交到服務(wù)器,此時可能會出現(xiàn)中文亂碼的問題。無論使用GET還是POST方法提交參數(shù),都需要對參數(shù)進行編碼。至關(guān)重要的是,編碼方式必須與服務(wù)器端的解碼方式保持一致。同樣,在獲取服務(wù)器返回的中文字符時,也需要使用特定的解碼格式進行解碼。HTTP的數(shù)據(jù)解析與顯示HTTP請求后返回的數(shù)據(jù)有多種類型,常見的有HTML、JSON、XML、純文本、圖片、適配、PDF等。HTML網(wǎng)頁的顯示HTML網(wǎng)頁是HTTP請求后返回的最常見的數(shù)據(jù)類型,Android提供了WebView控件來解析和顯示網(wǎng)頁。WebView控件和其他控件類似,可以直接在XML布局文件中添加,也可以在Java代碼中添加。HTML網(wǎng)頁的顯示W(wǎng)ebView控件的常用方法有:loadUrl(Stringurl):加載URL對應(yīng)的網(wǎng)頁。loadData(Stringdata,StringmimeType,Stringencoding):將指定的字符串?dāng)?shù)據(jù)加載到瀏覽器中。capturePicture():創(chuàng)建當(dāng)前屏幕的快照。goBack():執(zhí)行后退操作。goForward():執(zhí)行前進操作。stopLoading():停止加載當(dāng)前頁面。reload():重新加載當(dāng)前頁面。zoomIn():放大網(wǎng)頁。zoomOut():縮小網(wǎng)頁。addJavascriptInterface(Objectobject,Stringname):使用WebView中的JavaScript調(diào)用Android方法。JSON數(shù)據(jù)的解析Android應(yīng)用很多時候不需要顯示網(wǎng)頁,只需要獲取數(shù)據(jù),將數(shù)據(jù)適配到Android的控件上。HTTP請求獲取的數(shù)據(jù)類型很多時候是JSON類型,JSON是一種新的數(shù)據(jù)格式,是一種輕量級的數(shù)據(jù)交互格式,JSON的文件拓展名一般為.json。JSON可以傳輸一個簡單的數(shù)據(jù),也可以傳輸數(shù)組或?qū)ο蟆SON數(shù)據(jù)有兩種結(jié)構(gòu),分別是對象結(jié)構(gòu)和數(shù)組結(jié)構(gòu)。JSON數(shù)據(jù)的解析(1)對象結(jié)構(gòu)對象結(jié)構(gòu)以“{”開始,以“}”結(jié)束,中間部分由以“,”分隔的鍵值對(key:value)構(gòu)成,最后一個鍵值對后邊不用加“,”,鍵(key)和值(value)之間以“:”分隔,以下是一個對象結(jié)構(gòu)的JSON數(shù)據(jù)示例:
上述JSON是一個對象結(jié)構(gòu),有三個鍵值對,其中“city”的值為“Suzhou”,“temp”的值為26,“weather”的值為“cloudy”。{"city":"Suzhou","temp":2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)房屋買賣合同的簽訂策略
- 產(chǎn)品服務(wù)合同的合同變更
- 優(yōu)化采購合同管理的技巧
- 家具采購協(xié)議書樣式
- 家政服務(wù)合同風(fēng)險防范
- 補充合同內(nèi)容范例
- 地區(qū)代理招商合同文本
- 簽訂勞務(wù)分包合同的要點分析
- 地坪工程勞務(wù)分包
- 購銷合同中英文版談判技巧
- 2023年安徽新華發(fā)行控股有限公司社會招聘筆試真題
- 2024年四川省眉山市公開招聘警務(wù)輔助人員(輔警)筆試專項訓(xùn)練題試卷(3)含答案
- 軟件專業(yè)職業(yè)生涯規(guī)劃
- 2025蛇年春聯(lián)帶橫批
- 湖南工業(yè)大學(xué)《自然語言處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 護理各類風(fēng)險評估及防范
- 娛樂產(chǎn)業(yè)法律服務(wù)行業(yè)市場現(xiàn)狀分析及未來三至五年行業(yè)預(yù)測報告
- 專題06 非連續(xù)性閱讀(開放題型)-2023-2024學(xué)年八年級語文下學(xué)期期中專題復(fù)習(xí)(北京專用)(原卷版)
- 電力變壓器生產(chǎn)項目可行性研究報告
- 充電樁知識培訓(xùn)
- 2024-2030年地質(zhì)勘察行業(yè)市場前景與發(fā)展預(yù)測
評論
0/150
提交評論