【问题标题】:parsing json gotten from fcm response on android onMessageReceived解析从 android onMessageReceived 上的 fcm 响应获得的 json
【发布时间】:2020-03-20 12:16:31
【问题描述】:

我正在从服务器推送 Firebase 云消息通知,并以 json 的形式收到此响应。我对如何解析 json 有点困惑。 收到的响应是

{data={"title":"New Confirmation","message":"NGN 450 has been added to your wallet!"}}

我想访问标题和消息。

【问题讨论】:

    标签: android json firebase firebase-cloud-messaging


    【解决方案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。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      相关资源
      最近更新 更多