Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用不带索引的javascript解析数组中的JSON数组_Javascript_Json_Multidimensional Array - Fatal编程技术网

使用不带索引的javascript解析数组中的JSON数组

使用不带索引的javascript解析数组中的JSON数组,javascript,json,multidimensional-array,Javascript,Json,Multidimensional Array,我不知道如何表达标题,但我的问题是: 以下是我的javascript: $.post("register", element.serialize(), function(data){ if(data.success == "true"){ // Do whatever } else if (data.success == "false"){ f

我不知道如何表达标题,但我的问题是:

以下是我的javascript:

$.post("register", element.serialize(),
        function(data){
             if(data.success == "true"){
                           // Do whatever
            } else if (data.success == "false"){

                for (i = 0; i < data.errors.length; i++){
                      // This is what I need to change      
                      alert(data.errors[i][0]);
                }
            }
        }, "json");
分解,即:

errors: {
   email: "error with email"
   username: "error with username" }
success: "false"
我希望警报显示“电子邮件错误”和“用户名错误”

但我似乎什么都没做,有什么想法吗

谢谢

使用
for(in)
循环。这将允许您迭代对象的属性

var msgs = [];
for (var error in errors) {
   msgs.push(errors[error]);
}

数据。错误
不是数组。它是一个具有以下属性的对象:

data.errors.username
data.errors.email
你的问题不清楚你想对这两个属性做什么,但这就是你访问它们的方式

如果要迭代errors对象的属性,可以这样做:

for (var key in data.errors) {
    // data in data.errors[key] here
}

问题在于
errors
属性不是
数组
,而是具有属性的
对象。
以下是您应该使用的代码:

alert(data.errors.email);
和有效的
数组
对象声明,请注意
[]

errors: [
   { email: "error with email", username: "error with username" },
   { email: "error with email 2", username: "error with username 2" }
]

尝试警报(data.errors.username);对不起,我不清楚,我不一定知道索引是什么。我想在不知道“email”或“username”的情况下显示字符串下面的一些答案解决了问题,谢谢大家
errors: [
   { email: "error with email", username: "error with username" },
   { email: "error with email 2", username: "error with username 2" }
]