我有类型的地图
Map<String,UserForm>
哪里

Class UserForm {
String userName;
String password;
//setters ;
//getters;
}

Map<String,UserForm> userMap=new HashMap<String,UserForm>();


我将userMap添加到json对象,然后通过ajax调用将该对象发送到JSP页面。在javascript中,我需要遍历userMap并打印其属性(用户名和密码)。

这是我到目前为止所做的

for(var i in ajaxResponseData.userMap)
{
 if (ajaxResponseData.userMap.hasOwnProperty(i)) {
alert(' Value is: ' + ajaxResponseData.userMap[i].userName);
}


但是以上方法在警报框中显示未定义。请帮忙..

最佳答案

我建议仔细检查响应数据是否以您期望的格式返回,然后尝试访问它。另外,我认为不需要检查它是否具有属性i,因为您已经对其进行了迭代(因此已找到它)。请尝试以下代码片段:

console.log(ajaxResponseData.userMap); // to see how your data actually looks like

for (var i in ajaxResponseData.userMap) {
  // use the key to access the element
  console.log(ajaxResponseData.userMap[i]); // is this the value you're looking for?
}


我还在JsFiddle中设置了一个小示例,该示例警告值:https://jsfiddle.net/kd7u4zLt/

10-08 13:07