Я использую FCM
для push-сообщений и обработки всех входящих push-уведомлений в onMessageReceived. Теперь проблема заключается в разборке вложенного json, который входит в эту функцию. remoteMessage.getData()
не удалось разобрать блок json для json в android для FCM
У меня есть следующий блок, следующий как push-уведомление в устройстве. содержание полезных данных может быть изменено здесь дилер позже это может быть productInfo
{
"to": "/topics/DATA",
"priority": "high",
"data": {
"type": 6,
"dealerInfo": {
"dealerId": "358",
"operationCode": 2
}
}
}
это, как я разбор его
if(remoteMessage.getData()!=null){
JSONObject object = null;
try {
object = new JSONObject(remoteMessage.getData());
} catch (JSONException e) {
e.printStackTrace();
}
}
теперь я получаю данные с blackslashes, как remoteMessage.getData()
возвращается Map<String,String>
так, вероятно, однако мой вложенный блок преобразовывается в строку, но не уверен.
{
"wasTapped": false,
"dealerInfo": "{\"dealerId\":\"358\",\"operationCode\":2}",
"type": "6"
}
и если я пишу object = new JSONObject(remoteMessage.getData().toString());
тогда он получил неудачу с последующим уведомлением
{
"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"
}
}
ошибка я получаю
> org.json.JSONException: Unterminated object at character 15 of
> {body=Message Body, type=1, title=Call Status, callNumber=ICI17012702,
> callTempId=0}
не представляется возможным так, как бы я получить доступ к dealerInfo часть – Hunt
Вложенный объект все еще остается строка в этом случае , –
@ Абхинав, что это значит? ответ работает ... дайте веские основания для downvote ...! ответ может не работать для u ... так что вы можете добавить свою собственную версию, а не царапать другую спину .... – rafsanahmad007