Como analisar dados Json no android para Firebase Cloud Messaging (FCM)
estou usandoFCM
para mensagens push e manipulação de todas as notificações push recebidas em onMessageReceived. Agora, o problema é com a análise de json aninhado que vem dentro dessa funçãoremoteMessage.getData()
Tenho o seguinte bloco vindo como uma notificação por push no dispositivo. o conteúdo da carga útil dos dados pode variar, aqui é revendedor mais tarde.productInfo
{
"to": "/topics/DATA",
"priority": "high",
"data": {
"type": 6,
"dealerInfo": {
"dealerId": "358",
"operationCode": 2
}
}
}
é assim que eu estou analisando
if(remoteMessage.getData()!=null){
JSONObject object = null;
try {
object = new JSONObject(remoteMessage.getData());
} catch (JSONException e) {
e.printStackTrace();
}
}
agora estou recebendo dados com barras negras comoremoteMessage.getData()
retornaMap<String,String>
provavelmente meu bloco aninhado está sendo convertido em string, mas não tenho certeza.
{
"wasTapped": false,
"dealerInfo": "{\"dealerId\":\"358\",\"operationCode\":2}",
"type": "6"
}
e se eu escreverobject = new JSONObject(remoteMessage.getData().toString());
falhou com a seguinte notificação
{
"to": "regid",
"priority": "high",
"notification" : {
"body": "Message Body",
"title" : "Call Status",
"click_action":"FCM_PLUGIN_ACTIVITY"
},
"data": {
"type": 1,
"callNumber":"ICI17012702",
"callTempId":"0",
"body": "Message Body",
"title" : "Call Status"
}
}
erro eu recebo é
> org.json.JSONException: Unterminated object at character 15 of
> {body=Message Body, type=1, title=Call Status, callNumber=ICI17012702,
> callTempId=0}