ajax成功回调中的返回数据是json对象或json字符串

时间:2019-05-06 17:57:22

标签: jquery json ajax

我对ajax成功数据参数提出疑问。 有两个ajax请求和相应的控制器方法,两个控制器方法都将json字符串返回给成功函数,在ajax中,我将两个dataType都设置为'json',所以我猜它们是完全相同的。但是其中一个返回作为Json String,这意味着我必须首先将其解析为对象,另一个是直接解析为Json对象。对此我感到困惑。非常感谢!

我将它们记录在控制台中,请参见代码。前三个显示ajax1以及相应的控制台和控制器,最后三个显示ajax2相同。

ajax

oldpassword.on("blur",function(){
    $.ajax({
        type:"GET",
        url:path+"/sys/user/checkPass",
        data:{method:"pwdmodify",oldpassword:oldpassword.val()},
        dataType:"json",
        success:function(data){
            //this one is json object directly
            console.log(data);
            console.log(typeof(data));
            console.log(data.result+"*****");
            if(data.result == "true"){

在cotroller中

resultHashMap.put("result", "true");
return JSONArray.toJSONString(resultHashMap);

在控制台中

{result: "true"}result: "true"__proto__: Object
object
true*****

ajax2

$.ajax({
    type:"GET",
    url:path+"/sys/user/userdelete.html",
    data:{method:"deluser",uid:obj.attr("userid")},
    dataType:"json",
    success:function(data){
        //receive as Json String
        console.log(data);
        console.log(typeof(data));
        console.log(data.result+"*****");
        data = eval("(" + data + ")");
        if(data.delResult == "true"){

在cotroller中

boolean result=userService.deleteUserById(id);
if (result) {
resultHashMap.put("delResult", "true");
    return JSONArray.toJSONString(resultHashMap);
}

在控制台中

{"delResult":"true"}
string
undefined*****

0 个答案:

没有答案