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){}
是唯一成功的方法答案 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)
我认为它很简单,因为你用引号包围了你的对象,这使得它成为一个字符串而不是一个对象。删除它们,它应该工作正常。