解析从 android onMessageReceived 上的 fcm 响应获得的 json
Posted
技术标签:
【中文标题】解析从 android onMessageReceived 上的 fcm 响应获得的 json【英文标题】:parsing json gotten from fcm response on android onMessageReceived 【发布时间】:2020-03-20 12:16:31 【问题描述】:我正在从服务器推送 Firebase 云消息通知,并以 json 的形式收到此响应。我对如何解析 json 有点困惑。 收到的响应是
data="title":"New Confirmation","message":"NGN 450 has been added to your wallet!"
我想访问标题和消息。
【问题讨论】:
【参考方案1】:试试,
public void onMessageReceived(RemoteMessage remoteMessage)
remoteMessage.getData().get("title")
....
【讨论】:
它不起作用...这是 json 格式正在获取 data="title":"value","message":"value"。我认为“=”符号不合适 然后尝试先像这样将其转换为 JSONObject,JSONObject(remoteMessage.getData())
【参考方案2】:
你可以这样做
val data = message?.data ?: HashMap()
if(data.containsKey("title"))
Log.v("onMessageReceived", "" + data.get("title").toString())
if(data.containsKey("message"))
Log.v("onMessageReceived", "" + data.get("message").toString())
【讨论】:
【参考方案3】:您在onMessageReceived
收到通知响应,并且您说您的通知响应以 JSON 格式发送,然后试试这个。
public void onMessageReceived(RemoteMessage remoteMessage)
//Map<String, String> data = remoteMessage.getData();
//String title = data.get("title");
//String message = data.get("message");
JSONObject jsonRootObject = new JSONObject(remoteMessage.getData());
String title = jsonObject.optString("title").toString();
String message = jsonObject.optString("message").toString();
// then pass your title and message to notification
【讨论】:
这对我不起作用...这是 json 格式 data="title":"value","message":"value"..我不清楚json响应上的“=”符号 我已经更新了答案,你可以试试这个,因为你提到你的通知响应是 JSON。以上是关于解析从 android onMessageReceived 上的 fcm 响应获得的 json的主要内容,如果未能解决你的问题,请参考以下文章
Android View体系从源码解析View的layout和draw流程