在Javascript中从JSON数据中检索数据

时间:2017-11-06 07:24:40

标签: javascript jquery json

我的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结果中检索电子邮件和状态?

3 个答案:

答案 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)用于迭代您的回复

下次我建议你,你有这种错误,只需控制台。记录原始数据,找到它的结构,你就可以得到解决方案。