Javascript 无法从JSON访问值
我有一个JSON字符串:Javascript 无法从JSON访问值,javascript,jquery,Javascript,Jquery,我有一个JSON字符串: { "attachedFiles": [{ "link": "/site.com/dir?id=12993&SESSION=40af90dd-c1f3-4678-93e5-a4b36f3597b0&SESSIONTICKET=SESS:67bf209be2", "fileName": "file1.txt", "docDate": "24.02.2014", "docTime": "
{
"attachedFiles": [{
"link": "/site.com/dir?id=12993&SESSION=40af90dd-c1f3-4678-93e5-a4b36f3597b0&SESSIONTICKET=SESS:67bf209be2",
"fileName": "file1.txt",
"docDate": "24.02.2014",
"docTime": "13:54",
"docId": "12993"
}],
"requestId": 48,
"tasksId": 0,
"workId": 10558
}
我把它转换成这样:
var resdata = xhr.responseText; // the string response from the server
var resObj = JSON.parse(resdata);
然后,我尝试使用下面的代码在attachedFiles对象内部打印值fileName:
console.log(resObj.attachedFiles.fileName);
它总是返回未定义的。我知道我在这里误报了一些非常小的东西,但我无法发现它。附件是数组。因此,请尝试使用索引器访问数组内容
resObj.attachedFiles[0].fileName // 0th index, 1st Element
访问数组中的所有元素。感谢@Cerbus的评论
for(var i = 0, l = resObj.attachedFiles.length; i < l;i++)
{
console.log(resObj.attachedFiles[i].fileName);
}
attachedFiles是一个数组,所以使用indexer它是基于零的索引,所以第一个元素的索引为零
console.log(resObj.attachedFiles[0].fileName);
结果的可能副本是数组,因此必须指定索引resObj.attachedFiles[0]。文件名请注意[0]访问attachedFiles数组中的第一个附加文件。如果要访问数组中数量可变的元素,必须使用for循环迭代数组:forvar i=0,l=resObj.attachedFiles.length;i