我的API中有以下JSON数据
[{"email":"user@gmail.com","status":"Active"}]
这是我用来获取数据的 JS / jQuery 代码
function formLogin() {
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var dataString = "email=" + email + "&password=" + password;
jQuery.ajax({
url: "http://localhost/OnlineShop/API/fetch_user_login_api.php",
data: dataString,
type: "POST",
success: function(data) {
$("#login-form").html(data);
console.log('success');
//window.location.href = "store.html?shopper=";
var obj = jQuery.parseJSON(data);
alert(obj.email);
},
error: function() {
console.log('error');
}
});
return true;
}
alert(obj.email)
投掷未定义。如何从JSON结果中检索电子邮件和状态?
答案 0 :(得分:2)
您的“数据”变量已经是对象或数组,您无需调用parseJSON。
然后,您的对象似乎是一个对象数组 这应该有效:
alert(data[0].email);
我建议你在调用此行之前检查你的数组是否为空。
答案 1 :(得分:0)
API返回[{"email":"user@gmail.com","status":"Active"}]
,因为它是Array类型。
首先你需要通过obj = obj[0]
获取数组的第一个元素。
然后它就像{"email":"user@gmail.com","status":"Active"}
。
现在您可以通过obj["email"]
答案 2 :(得分:0)
如果你打电话给api并得到如下结果:
[{"email":"user@gmail.com","status":"Active"}]
它是一个数组,你可以做的是修复错误:
1)将您的api响应结构更改为JSON而不是数组
2)用于迭代您的回复
下次我建议你,你有这种错误,只需控制台。记录原始数据,找到它的结构,你就可以得到解决方案。