2013-05-24 4 views
0

Я пытался извлечь информацию из полученного сообщения GCM. Вот сообщение, отправленные с моего сервера:Parse получил сообщение GCM

"Message(data: {profile={"id":"214","name":"Dr Who","phone_number":"214"}})" 

И сообщение, полученное по телефону:

05-24 21:00:26.083: D/GCMIntentServiceReceived Message:(3929): Received Message: Message(data: {profile={"id":"214","name":"Dr Who","phone_number":"214"}}) 

Вот код, который я использую, чтобы попытаться извлечь пары ключ/значение.

Я пытаюсь извлечь поле «id» в этом примере, но всегда получаю NULL. У кого-нибудь есть идеи? Благодаря!

ответ

1

'id' является частью JSON, инкапсулированной в сообщении String. Вы должны преобразовать сообщение String в объект JSON, а затем получить «id».

String[] parts = message.split("="); 
try { 
JSONObject object = new JSONObject(parts[1].substring(0, parts[1].length() - 2)); 
String id = object.getString("id"); 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Учтите, что код выше очень ун-родовой. Вы должны попытаться отправить чистую строку json с сервера и пропустить бит для сокращения строк.

+0

Спасибо за ответ! Похоже, проблема была вызвана отправкой сообщения GCM с использованием PHP-скрипта. Переключился обратно на чистую Java, и он отлично работает! – TomSelleck

Смежные вопросы