Javascript(jQuery)测试json对象中的数组并返回值

时间:2012-02-29 03:41:10

标签: javascript jquery arrays

UDPATE:这是通过多维阵列实现最佳方式的最佳途径。因此,请检查复杂阵列内的物体并确定它们的价值。


{ "error":{
      "data": {
             "id":"3",
             "name":"404",
             "content" : "value"
       },
      "response":"Invalid path.",
      "code": 1
   }
}

if(json.error.data  !== undefined) {
      alert('value: ' + json.error.data);
}

我在这里有问题;我似乎无法正确解决。当我尝试检查数组的值时,如果数组数据不存在或内容不存在,则返回错误“Uncaught TypeError:无法读取未定义的属性数据”。我知道有一种方法可以使用indexOf()来测试值是否存在,但这对我没有帮助。我需要测试该值然后捕获它。请记住,这是一个多维数组,所以只使用indexOf不一定能找到数组的复杂性以及如何定位它。

好的,简单地说。我需要说,数组数据和参数内容是否存在于上面显示的错误数组中。如果确实如此,那就抓住它的价值并做点什么。

我还读到了jQuery.inArray();我不知道如何将它用于复杂的多维数组。

使用循环(x in z){}

是唯一成功的方法

5 个答案:

答案 0 :(得分:1)

要测试undefined,请使用typeof和字符串'undefined'

此外,在将字符串解析为JSON后,检查.error父{/ 1}}父属性是否存在。从您的代码中不清楚是否实际已经完成。

.data

答案 1 :(得分:1)

https://stackoverflow.com/a/2313663/528858

try{
   var json = JSON.parse(this.responseText);
}catch(e)
   alert('invalid json');
}

答案 2 :(得分:0)

我认为你的对象错了。

json = '{...

您从单引号开始。变量json现在是string,而不是JavaScript对象。

答案 3 :(得分:0)

将您的对象声明为此

json = 
{ 
    "error":{
        "data": {
            "id":"3",
            "name":"404",
            "content" : "value"
        },
        "response":"Invalid path.",
        "code": 1
    }
};

答案 4 :(得分:-1)

我认为它很简单,因为你用引号包围了你的对象,这使得它成为一个字符串而不是一个对象。删除它们,它应该工作正常。