JQuery中ajax不能解析json

Action:
@Controller
@Scope("prototype")
@Namespace("/")
@ParentPackage("json-default")
public class OaAction extends ActionSupport
private String name;
private String pass;
private String msg;
@Action(value="/login",
results={@Result(name="success",location="/main.jsp"),
@Result(name = "login",type="json") })
public String login()
{
Map map = new HashMap();
if(name=="经理1" && pass=="123456")
{
//将数据存储在map里,再转换成json类型数据,也可以自己手动构造json类型数据
map.put("flag","true");
map.put("info","欢迎登陆");
JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据
msg = json.toString();//给msg赋值,传递给页面
return SUCCESS;
}
else
{
map.put("flag","false");

    map.put("info","用户名或者密码错误");

//将map对象转换成json类型数据,在此处打断点json有以下两个属性

nullObject : null;

propeties:{flag=false, info=用户名或者密码错误}
JSONObject json = JSONObject.fromObject(map);
msg = json.toString();//给msg赋值,传递给页面
return "login";
}
}
@JSON
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public String getPass()
{
return pass;
}
public void setPass(String pass)
{
this.pass = pass;
}

jsp:


$(function(){
$('#lgbtn').click(function(){
var name=document.getElementById("uname").value;
var pass=document.getElementById("password").value;
$.ajax
({
url:"login.action",
dataType:"json",
type:"post",
data:"name="+name+"&pass="+pass,
async:false,
success:function(data)
{
//将数据转换成json类型,可以把data用alert()输出出来看看到底是什么样的结构
alert(data);//弹出对话框的内容为:Object object
var d = eval('('+data+')');
alert(""+d.flag+""); //没有弹出对话框

alert(""+d.info+"");

},
error:function()
{
alert("请求失败");//没有报请求失败
}
});

});
});

1个回答

datatype:JSON;
接收到的数据已经是json类型的数据了,你可以直接用data.info,data.flag;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!