我有这个JSON:
{
"id" : "1405247989732",
"title" : "פיקוד העורף התרעה במרחב ",
"data" : [
"באר שבע 292",
"באר שבע 291"
]
}
(来自服务器)
我想将data
存储在一个数组中,并且每隔3秒刷新一次JSON,因为数据数组可以随时更改。
从哪儿开始?
答案 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