2014-07-13 36 views
2

我有這樣的JSON:代表一個JSON陣列 - Android SDK中

{ 
    "id" : "1405247989732", 
    "title" : "פיקוד העורף התרעה במרחב ", 
    "data" : [ 
     "באר שבע 292", 
     "באר שבע 291" 
    ] 
} 

(從服務器) 我想存儲data在一個陣列,同時還刷新了JSON每3秒,因爲數據陣列隨時更改。 從哪裏開始?

+4

開始通過一些JSON解析教程 – Raghunandan

+0

看http://wiki.fasterxml.com/JacksonInFiveMinutes去 – Hunsu

回答

1

做到這一點最簡單的方法:

A.創建,其字段(名稱和類型)的Java類匹配您的JSON:

class MyDataRecord { 
    String id; 
    String title 
    String[] data; 
} 

B.和使用GSon從Json字符串讀取內容並將其寫入您的班級:

MyDataRecord dataRecord = new Gson().fromJson(jsonString, MyDataRecord.class); // string to obj 

String jsonString = new Gson().toJson(dataRecord); // obj to string 

C.定期輪詢您的服務器以獲取更新。您也可以使用GCM進行服務器推送,但如果我正確理解 您的程序範圍,服務器輪詢可能就足夠了。

吉拉德

0

正如在評論中所隱含的,有各種可用於Android的json解析器。如果你從服務器獲得你的json,我會建議看看square的Retrofit。由於改造不僅會解析json,還會爲您執行http請求。

http://square.github.io/retrofit/ 

在問候三秒投票,你可以做這樣的事情:

handler = new Handler(); 
final Runnable r = new Runnable() { 
    public void run() { 
     json = getJsonFromServer() 

     handler.postDelayed(this, 3000); 
    } 
}; 
handler.post(r); 

這將放在你的消息隊列運行的,將調用得到JSON,然後方法將自己置於消息隊列中以在三秒內再次執行。

雖然這會起作用,但使用GCM(Google雲消息傳遞)服務器將更新信息推送到您的手機時,只要價值發生變化而不是經常查詢服務器,這是一個更好的做法。

http://developer.android.com/google/gcm/index.html