2015-04-28 85 views
0

我有通过Ajax调用从servlet获取json值的示例代码。 在成功功能,我得到的回应。它在控制台中显示Object : [{"userId":"dfeterter"}]无法使用AJAX调用从JSON对象获取值

但我不能够得到用户id的值

$.ajax({ 
    url: "Registration", 
    dataType: "json", 
    data: { 
     jsonbhvalue: bhvalue, 
     jsonuid: uid, 
     jsonpassword: password, 
     jsonfname: fname, 
     jsonlname: lname, 
     jsonmobile: mobile, 
     jsonemailid: emailid 
    }, 
    success: function(variable) { 
     var obj = $.parseJSON(JSON.stringify(variable)); 
     console.log("Object  : " + obj); 
     console.log("cval  : " + obj.userId) 
    }); 
}); 
+0

什么是'$ .parseJSON(JSON.stringify(变量))'的目的是什么? – Musa

+0

'var obj = $ .parseJSON(JSON.stringify(variable)); '是不必要的。 jQuery自动解析任何JSON。 – Andy

+0

所以我必须做什么?\ –

回答

1

多亏了@RobertoNovelo。

您必须删除$ .parseJSON,因为您已经通过ajax配置设置了JSON。 dataType: "json" 您需要使用:

obj[0].userId 

你的反应是对象的数组。

+0

与此oneried.but但没有... ... @ Tushar –

+0

Undeifned它显示.... @Tushar –

+0

@AbhishekMahapatra。首先从您的代码中移除'$ .parseJSON()'行。然后使用'console.log(JSON.stringify(variable))'告诉我们你看到了什么。因为如果你的'obj'看起来像'[{“userId”:“dfeterter”}]',那么这个解决方案就不起作用了。还打印'console.log(变量[0] .userId)' – Zee

0

这是因为你的对象是一个数组。您应该使用obj[0]或数组赋值给一个变量,然后使用其成员

objs = [{"userId":"dfeterter"}] 
 

 
firstobj = objs[0] 
 

 
console.log("Object  : " + objs); 
 
console.log("cval  : " + objs[0].userId); 
 
console.log("cval  : " + firstobj.userId);

+0

嘿@Rob ...所有未定义显示 –

+0

尝试删除JSON.stringify部分,只使用var obj =变量,因为你在您的ajax调用中已经有json作为数据类型 – RobertoNovelo