我有一张地图:
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");
}
答案 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);