我有以下代码,我正在尝试从JSON检索用户ID,名字和一些值,但我得到了未定义。
我该如何解决这个问题?
function getVal(val1,val2) {
var myval2 =URL +"webUser?email="+email;
var uId='';
$.ajax({
url: myval2,
dataType: "json",
cache: false,
success: function(data, textStatus, jqXHR) {
jQuery.each(data, function(k,v) {
console.log( " k " +k + " v" + v);
uId =v.uId;
});
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('FAILED to get JSON from AJAX call' + jqXHR + textStatus + errorThrown);
}
});
console.log("userid " +userId);
return userId;
}
JSON
{
"userId": 2,
"emailAddress": "some@some.com",
"roleId": 1,
"firstName": "Hulk",
"lastName": "Ogan",
"company": "MTT",
"title": "Lord Vader",
"phoneWork": "",
"phoneMobile": "",
"lastModifiedBy": "system",
"versionNumber": 1
}
答案 0 :(得分:2)
您可以简单地获取userid和其他属性的值
userID = data.userId;
如果您的data
是single object
loop
只需data
,您需要array of objects
,因此无需循环播放
答案 1 :(得分:0)
您可以简单地获取userid和其他属性的值
userID = data['userId'];
var data = {
"userId": 2,
"emailAddress": "some@some.com",
"roleId": 1,
"firstName": "Hulk",
"lastName": "Ogan",
"company": "MTT",
"title": "Lord Vader",
"phoneWork": "",
"phoneMobile": "",
"lastModifiedBy": "system",
"versionNumber": 1
};
console.log(data['userId']);

答案 2 :(得分:0)
我能看到的一个问题是你的json记录只是:一条记录;因此,您不需要$ .each来遍历ajax结果 - 只有在返回的数据由具有可能很多记录的json数组组成时才有必要。
除此之外,您只需要进行一些错误跟踪:
答案 3 :(得分:0)
你不需要jQuery.each,因为你没有JsonArray并且你有JsonObject。 您可以使用以下方式轻松获取数据:
userID = data.userId;
和
userID = data['userId'];
(如Madalin& Leopars的回答)