我正在實施Firebase推送通知。我正在使用remoteMessage.getData()
獲得推送通知。我在for循環中使用Map.Entry來獲取數據。如圖所示,我將鍵和值對取爲: key:body,value:{JSON Object};鍵:標題,值:Placebid。 我想要的是獲得與字符串「標題」的關鍵,並檢查它的「Placebid」,如果是的話,然後得到具有JSON的關鍵「身體」的值。如何在循環內做到這一點?我試過但沒有獲得JSON的價值。檢查for循環中的Map.Entry中的字符串
//onMessageReceived
if(remoteMessage.getData().size() > 0){
try {
System.out.println("sammy_getData "+remoteMessage.getData());
for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Log.d("sammy_ ", "key: " + key + "\n value: " + value);
System.out.println("sammy_key: "+key+"\n value: "+value);
if(key.contains("title") && value.contains("Placebid")){
JSONObject obj = new JSONObject(value);
String jobid = obj.getString("job_id");
String username = obj.getString("username");
String msg = "bided on your job.";
String msgbody = username + " " + msg;
sendnotificationbid(jobid,msgbody);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
//Push notification format
{
body={
"image": "<Image link>",
"job_id": "1349",
"id": 121,
"message": "New Message Received",
"type": "Placebid",
"username": "User1234"
},
title=Placebid
}
'如果(... value.contains( 「Placebid」)){JSONObject的OBJ =新的JSONObject(值);}'它不會使SENS ......因爲值= Placebid – Selvin
爲什麼你需要for循環如果你知道你的密鑰是「title」?直接使用地圖上的鍵獲取值,並檢查它是否等於「Placebid」。 –
你能告訴我如何爲此做一個小例子嗎? @AkshayBhat –