代表JSON数组 - Android SDK

时间:2014-07-13 16:57:25

标签: java android json sdk

我有这个JSON:

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

(来自服务器) 我想将data存储在一个数组中,并且每隔3秒刷新一次JSON,因为数据数组可以随时更改。 从哪儿开始?

2 个答案:

答案 0 :(得分: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进行服务器推送,但是如果我理解的话 正确的程序范围,服务器轮询可能就足够了。

吉拉德

答案 1 :(得分:0)

正如评论中所提到的,Android中有各种各样的json解析器。如果您从服务器获取json,我建议您查看square的改造。由于改造不仅会解析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);

这将在您的消息队列中放置一个runnable,它将调用获取json的方法,然后将其自身置于消息队列中,以便在三秒钟内再次执行。

虽然这样可行,但是当价值发生变化时,使用GCM(Google云消息传递)服务器将更新推送到手机是一种更好的做法,而不是经常查询服务器。

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