Android Studio
接力使力之玩 Open Data
五種取得JSON資料之程式運用
學習主題
• 社群成立目的簡介
• 自我介紹與哈啦
• 功力複習
• 程式實作(Android)
• 問題與交流
個人簡介
諸葛魔斌
工作室:諸葛魔斌科技創作室
學歷:高應大---工管系(非資訊科系)
E-Mail:chugermobin@gmail.com
官方網站:http://twcts.com
Facebook:https://goo.gl/volM7Z
粉絲團 :https://goo.gl/LI08wh
社群 :https://goo.gl/kjCsz1
Line (id) :http://goo.gl/ayGW7d
Line@ :http://goo.gl/pQHjWH
Line Bot :http://goo.gl/ljdxfV
Play商店:http://goo.gl/CkVdsd
App 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","c
lickEvent": {"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元(珍惜學習資源)

Android studio 接力使力之玩 open data