Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提取java.util.Map对象中的数据?_Java_Firebase Cloud Messaging - Fatal编程技术网

如何提取java.util.Map对象中的数据?

如何提取java.util.Map对象中的数据?,java,firebase-cloud-messaging,Java,Firebase Cloud Messaging,在中,有以下代码示例: public void onMessageReceived(RemoteMessage remoteMessage) { if (remoteMessage.getData().size() > 0) { Log.d(TAG, "Message data payload: " + remoteMessage.getData()); } } Android Studio告诉我,remoteMessage.getData()返回一种类型的java.ut

在中,有以下代码示例:

public void onMessageReceived(RemoteMessage remoteMessage) {
  if (remoteMessage.getData().size() > 0) {
    Log.d(TAG, "Message data payload: " + remoteMessage.getData());
  }
}
Android Studio告诉我,
remoteMessage.getData()
返回一种类型的
java.util.Map
。发送端的数据是Json格式的,如果发送的数据是
{“a”:“b”,“c”:“d”}
remoteMessage.getData().toString()
将生成:

{a=b, c=d}
我对Java非常陌生。即使知道所使用的Json结构,如何访问
getData()
中返回的数据

我试过:

HashMap<String, String> Data = (HashMap<String,String>)remoteMessage.getData();
HashMap Data=(HashMap)remoteMessage.getData();
但我得到了以下运行时异常:

无法将android.support.v4.util.Array.Map转换为java.util.HashMap

试试这个:

Map<String, String> data = remoteMessage.getData();
Map data=remoteMessage.getData();
Android Studio告诉我,
remoteMessage.getData()
返回一种类型的
java.util.Map

确切地说,它返回一个
映射。它不会返回
HashMap
,也不应该依赖于Map的任何特定实现。地图还有许多其他的实现,例如
TreeMap

您应该使用这样的地图:

Map<String, String> data = remoteMessage.getData();
Map data=remoteMessage.getData();

如果我们查看的文档,我们会看到您正在检索
地图

所以你只需要使用这个方法来得到,让我们看看。。。
“a”
的值

Map data=remoteMessage.getData();
字符串值=数据。获取(“a”);/>“b”

如果您不知道JSON,也可以使用方法迭代映射

您不需要强制转换任何内容。您有一个java.util.Map,因此请阅读java.util.Map的javadoc,它描述了从映射中获取键、值、条目并使用它们的所有可用方法。如果我给你一辆车,而你已经学会了驾驶,你可以驾驶那辆车,而不知道这辆车是什么牌子的,发动机是什么类型的,刹车是什么类型的。这是一辆车,它的性能和其他车一样。谢谢。如果我将该数据分配给一个
java.util.Map
对象,我应该在K和V中放入什么?
Map Map=remoteMessage.getData()
(取决于
映射的类型,但对于Json,它可以是
字符串、对象
字符串、JsonObject
不确定为什么要修改收到的消息。但是如果确实需要,RemoteMessage.getData()会返回一个映射,如其文档所示:。该文档是一个映射,表明它有一个方法put(K,V):。因此您将使用
map.put(“someKey”,“someValue”)
@OldGeezer表示“a”和“b”的类型,即字符串和字符串
Map<String, String> data = remoteMessage.getData();
String value = data.get("a"); // > "b"