2014-02-24 20 views
0

访问值我有这样的JSON字符串:无法从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": "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); 

它总是返回undefined。我知道我在这里发现了一些真正的小东西,但我无法发现它。

+0

的可能重复的[如何访问以JavaScript JSON.parsed对象(http://stackoverflow.com/questions/1570487/how-to-access-json-parsed-object-in-javascript) – Cerbrus

+0

结果是一个数组,所以你必须指定一个索引'resObj.attachedFiles [0] .fileName' – Archer

回答

6

attachedFiles是数组。因此,尝试使用索引器访问数组内容

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); 
} 
+3

请注意''[0]'访问'attachedFiles'数组中的第一个附加文件。 如果你想访问数组中可变数量的元素,你将不得不迭代一个'for'循环:'for(var i = 0,l = resObj.attachedFiles.length; i < l; i ++){console.log(resObj.attachedFiles [i]);}' – Cerbrus

3

attachedFilesarray所以使用indexer从零开始的索引所以第一个元素将是零指标。

console.log(resObj.attachedFiles[0].fileName);