У меня есть строка 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);
И затем я пытаюсь получить доступ (напечатать значение) fileName
внутри объекта attachedFiles
fileName
по приведенному ниже коду:
console.log(resObj.attachedFiles.fileName);
Он всегда возвращает undefined
. Я знаю, что здесь что-то здесь очень мало, но я не могу это заметить.
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);
}
[0]
обращается к первому приложенного файла в attachedFiles
массиве. Если вы хотите получить доступ к переменному количеству элементов в массиве, вы будете иметь , чтобы перебирать массив с for
цикла: for(var i = 0, l = resObj.attachedFiles.length; i < l; i++){console.log(resObj.attachedFiles[i]);}
attachedFiles
- это array
поэтому используйте indexer
индекса с нулевым индексом, поэтому первый элемент будет иметь нулевой индекс.
console.log(resObj.attachedFiles[0].fileName);
resObj.attachedFiles[0].fileName