我从 firebase 获取的数据有效负载不是 json 格式,而是按以下格式获取自定义键值对:
Data Payload:{image=https://www.xxxx.xxx/get-profile-picture, message=This is a test message., senderName=Mathew John}
我必须使用 Json 解析来解析数据以进行进一步处理。这是我的代码:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getData().size() > 0) {
Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
try {
JSONObject json = new JSONObject(remoteMessage.getData().toString());
String title = remoteMessage.getData().get("senderName");
System.out.println("raja" + title);
String msg = remoteMessage.getData().get("message");
System.out.println("raja" + msg);
sendMessage(msg,title);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
我从火力基地获取的数据有效负载不是 json 格式
Yes
,它的行为符合预期。
因为数据负载包含custom key-value pairs
而不是JSON
格式
我必须使用
Json
解析来解析数据以进行进一步处理。
您需要使用 Map<String, String>
将数据有效负载转换为JSONObject
检查以下示例
示例代码
Map<String, String> params = remoteMessage.getData();
JSONObject object = new JSONObject(params);
Log.e("JSON_OBJECT", object.toString());