2013-02-27 57 views
1

我向Google GCM服务器https://android.googleapis.com/gcm/send发送一条消息(POST),用于向已注册的Android设备发送推送通知。 POST正文看起来是这样的:Android GCM:我们可以将数据作为完整的JSON结构吗?

{ 
    "registration_ids" : [android_registration_id], 
    "data" : { 
     "message" : "Hello World!", 
     "update" : "You've got a new update", 
     "info" : "You've got new information updates too!" 
    } 
} 

假设我不知道所有的键 - 值对在“数据”字段已经发送给我(GCM注册Android应用程序),我想枚举并打印它们,我可以提取“数据”中的字段作为JSON结构吗?

例如,在上面的例子中,我需要以下作为JSON对象:

{ 
    "message" : "Hello World!", 
    "update" : "You've got a new update", 
    "info" : "You've got new information updates too!" 
} 
+0

正如我所知GCM发送的数据封装在Bundle对象中,但您可以尝试发送键值结构化数据并将值放到您的json中。并不确定它是否会做到这一点。 – hardartcore 2013-02-27 15:10:35

+0

我可以发送整个JSON作为一个值来假设“json_structure”,正如你所说的那样,但是我想让它完全独立于用户,无论用户通过什么,我都会创建一个JSON结构并显示键值对。 – 2013-02-27 15:19:25

+0

在整个游戏中扮演用户的角色是什么?你将会接受并回复给用户。 – hardartcore 2013-02-27 15:22:58

回答

3
Bundle data = intent.getExtras(); 
Iterator<String> it = data.keySet().iterator(); 
String key; 
String value; 
while(it.hasNext()) { 
    key = it.next(); 
    value = data.getString(key); 
} 

尝试此。使用键和值你可以构造初始json。

0
JSONArray array = new JSONArray(jsonBodyOfTheResponse); 

for (int i = 0; i < array.length(); i++) { 
    JSONObject row = array.getJSONObject(i); 
    . 
    . 
    . } 
相关问题