android studio 接力使力之玩 open data
TRANSCRIPT
Android Studio接力使力之玩 Open Data五種取得 JSON 資料之程式運用
學習主題• 社群成立目的簡介• 自我介紹與哈啦• 功力複習• 程式實作 (Android)
• 問題與交流
個人簡介諸葛魔斌工作室:諸葛魔斌科技創作室學歷:高應大 --- 工管系 ( 非資訊科系 )E-Mail : [email protected]官方網站: http://twcts.comFacebook : https://goo.gl/volM7Z粉絲團 : https://goo.gl/LI08wh社群 : https://goo.gl/kjCsz1Line (id) : http://goo.gl/ayGW7dLine@ : http://goo.gl/pQHjWHLine Bot : http://goo.gl/ljdxfVPlay 商店: http://goo.gl/CkVdsdApp Store : http://apple.co/1Qehd64專長: VB(VBA) 、 C# 、 Java(Android) 、 Swift(iOS) 、 PHP 、 Python 、 Conrona 、 Golang 、 HTML/CSS 、 MySQL 、 FreeBSD 、 Server 架設、 CAD 、 ……
楊政斌
Open Data & JSON
五種取得資料之程式運用
Open Data :指的是一種經過挑選與許可的資料,這些資料不受著作權、專利權,以及其他管理機制所限制,可以開放給社會公眾,任何人都可以自由出版使用,不論是要拿來出版或是做其他的運用都不加以限制。
五種取得資料之程式運用
XML:可延伸標記式語言(英語: Extensible Markup Language ,簡稱:XML),是一種標記式語言。標記指電腦所能理解的資訊符號,通過此種標記,電腦之間可以處理包含各種資訊的文章等。如何定義這些標記,既可以選擇國際通用的標記式語言,比如 HTML,也可以使用像 XML 這樣由相關人士自由決定的標記式語言,這就是語言的可延伸性。 XML 是從標準通用標記式語言( SGML )中簡化修改出來的。它主要用到的有可延伸標記式語言、可延伸樣式語言( XSL )、 XBRL和 XPath等。
五種取得資料之程式運用
JSON( JavaScript Object Notation )是一種由道格拉斯·克羅克福特構想設計、輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。儘管JSON 是 Javascript的一個子集,但 JSON 是獨立於語言的文字格式,並且採用了類似於 C語言家族的一些習慣。
五種取得資料之程式運用JSON 用於描述資料結構,有以下形式存在。•物件( object ):一個物件以「 { 」開始,並以「 } 」結束。一個物件包含一系列非排序的名稱/值對,每個名稱/值對之間使用「 , 」分割。•名稱/值( collection ):名稱和值之間使用「:」隔開,一般的形式是:{name:value} 一個名稱是一個字串; 一個值可以是一個字串,一個數值,一個物件,一個布林值,一個有序列表,或者一個 null 值。•值的有序列表( Array ):一個或者多個值用「 , 」分割後,使用「 [ 」,「 ] 」括起來就形成了這樣的列表,形如:[collection, collection] •字串:以 "" 括起來的一串字元。•數值:一系列 0-9 的數字組合,可以為負數或者小數。還可以用「 e 」或者「 E 」表示為指數形式。•布林值:表示為 true 或者 false 。
五種取得資料之程式運用{ "firstName": "John", "lastName": "Smith", "sex": "male", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
[ { "text":"This is the text","color":"dark_red","bold":"true","strikethough":"true","clickEvent": {"action":"open_url","value":"zh.wikipedia.org"}, "hoverEvent": {"action":"show_text","value": {"extra":"something"} } }, { "translate":"item.dirt.name","color":"blue","italic":"true" } ]
五種取得資料之程式運用
第一種方法 --- 簡易取出網頁 JSON 資料第二種方法 --- 利用 OKHttp 取得 JSON 資料第三種方法 --- 利用 OKHttp 搭配 GSON 取得 JSON 資料第四種方法 --- 利用 OKHttp 搭配 JackSON 取得 JSON 資料第五種方法 --- 使用 TableLayout 列出資料
前置作業
五種取得資料之程式運用
五種取得資料之程式運用
變更向下相容之 SDK 版本(4.4)
五種取得資料之程式運用
加入網路權限<uses-permission
android:name="android.permission.INTERNET" />
五種取得資料之程式運用
加入 Design 函式庫compile
'com.android.support:design:23.3.0'
第一種方法
五種取得資料之程式運用
佈局內容無增減將 TextView 移至中央
五種取得資料之程式運用
五種取得資料之程式運用
佈局檔文字內容
五種取得資料之程式運用
程式檔內容
第二種方法
五種取得資料之程式運用
五種取得資料之程式運用
加入 OKHttp 函式庫compile
'com.squareup.okhttp3:okhttp:3.2.0'
增加佈局檔 row_trans
五種取得資料之程式運用
五種取得資料之程式運用
佈局檔文字內容
增加自訂佈局
五種取得資料之程式運用
五種取得資料之程式運用
選擇 RecycleView
五種取得資料之程式運用
佈局檔文字內容
增加 Class 檔 Transation
五種取得資料之程式運用
增加 Class 檔 TransationAdapter
五種取得資料之程式運用
五種取得資料之程式運用
主程式檔內容
第三種方法
五種取得資料之程式運用
五種取得資料之程式運用
加入 GSon 函式庫compile
'com.google.code.gson:gson:2.6.2'
五種取得資料之程式運用
使用 GSON
第四種方法
五種取得資料之程式運用
五種取得資料之程式運用
加入 JackSon 函式庫 compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13' compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
五種取得資料之程式運用
加入 排除錯誤 函式庫packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' exclude 'META-INF/ASL2.0' }
五種取得資料之程式運用
使用 JackSON
第五種方法使用 TableLayout
五種取得資料之程式運用
佈局檔架構
五種取得資料之程式運用
五種取得資料之程式運用
佈局檔文字內容
增加 Class 檔 HTTPDataHandler
五種取得資料之程式運用
五種取得資料之程式運用
主程式檔內容
結論: 1. JSON 資料格式2. 網站資料取得與 JSON 解析3. OKHttp , GSON , JackSon 使用4. TableLayout 使用方法5. RecycleView 自訂佈局使用方法
五種取得資料之程式運用
Android Studio 接力使力之玩 Open Data
第七、八、九、十次聚會學習課程iOS Swift / Android Strudio & FireBase 玩上雲端囉iOS Swift / Android Strudio & FCM 玩推播服務
學習不能中斷,卡關不要氣餒,讓我們的熱血繼續揮撒在程式的樂趣吧 !!帶著你的筆電,和我們一起享受 Coding Fun註:我們學習的是多系統,所以筆電最好是 Macbook哦 !日期: 9/7 、 21(星期三 ) 18:30~ 21:30 FireBase 玩上雲端囉 10/5 、 19(星期三 ) 18:30~ 21:30 FCM 玩推播服務地點:高雄市前鎮區一心二路 157 號 10樓之 4 (微盛科技)捷運三多商圈站 4 號出口,步行約 10 分鐘歡迎踴躍報名,也歡迎高手協助指導費用: 0 元 (珍惜學習資源 )