如何以“字符串”格式从Map获取特定值

时间:2015-12-01 07:01:33

标签: java android

我有一张地图:

Map<String, String> value

如何获得特定值“String”----&gt;从json值“输入”,我如何获得它?

我尝试了下面的代码,它只返回KEY而不是VALUE

Iterator it = payload.entrySet().iterator();
        while (it.hasNext())
        {
            Map.Entry pair = (Map.Entry)it.next();
            System.out.println(pair.getKey() + " = " + pair.getValue());
            String key = pair.getKey().toString();
            String value = pair.getValue().toString();
            Log.d("getActionValue", "key : " + key);
            Log.d("getActionValue", "value : + value");
        }

4 个答案:

答案 0 :(得分:4)

您不会在输出中访问您的变量,因为value仍然在字符串中。 改变如下:

Log.d("getActionValue", "value : " + value);

答案 1 :(得分:2)

您的问题在Log.d("getActionValue", "value : + value");Log.d("getActionValue", "value : "+ value);

试试这个循环: -

for (Map.Entry<String, String> entry : payload.entrySet())
{
    Log.d("getActionValue", "key : " + entry.getKey());
    Log.d("getActionValue", "value :" + entry.getValue());
}

答案 2 :(得分:1)

  

我想要特别的“字符串”----&gt;从价值“打字”,我该怎么做   获得它?

payload地图包含JSONObject's作为每个键的值。所以要让type首先需要将String转换为JSONObject,然后使用type键获取值:

JSONObject jsonObject=new JSONObject(value);
String strType="";
if(jsonObject.has("notification-action")){
   JSONObject jsonObjectnotification=jsonObject.optJSONObject
                                         (""notification-action"");
   if(jsonObjectnotification.has("type")){
      strType=jsonObjectnotification.optString("type");
   }
}

答案 3 :(得分:1)

你记错了。

应该是:

Log.d("getActionValue", "value : " + value);