2013-09-03 4 views
1

Если у вас есть следующие данные, которые я извлекаю из своего приложения NodeJS, и я хочу показать через javascript.Javascript JSON output

{ 
    "holes": [{ 
     "par": 5, 
     "strokeindex": 5 
    }, { 
     "par": 4, 
     "strokeindex": 15 
    }, { 
     "par": 3, 
     "strokeindex": 11 
    }, { 
     "par": 4, 
     "strokeindex": 13 
    }, { 
     "par": 4, 
     "storkeindex": 1 
    }, { 
     "par": 3, 
     "strokeindex": 17 
    }, { 
     "par": 4, 
     "strokeindex": 9 
    }, { 
     "par": 4, 
     "strokeindex": 7 
    }, { 
     "par": 4, 
     "strokeindex": 3 
    }, { 
     "par": 5, 
     "strokeindex": 6 
    }, { 
     "par": 4, 
     "strokeindex": 16 
    }, { 
     "par": 3, 
     "strokeindex": 13 
    }, { 
     "par": 4, 
     "strokeindex": 14 
    }, { 
     "par": 4, 
     "storkeindex": 2 
    }, { 
     "par": 3, 
     "strokeindex": 18 
    }, { 
     "par": 4, 
     "strokeindex": 10 
    }, { 
     "par": 4, 
     "strokeindex": 8 
    }, { 
     "par": 4, 
     "strokeindex": 4 
    }] 
} 

Приведенные данные берется вид консоли, где я вошли с помощью следующей команды:

console.log(JSON.stringify(data)); 

Теперь я хочу, чтобы вывести все «номинальной» информацию от каждого объекта в data.holes к переменной, отображаемой на моей странице. Я пробовал во многих отношениях, как:

var html = ""; 
for(i = 1; i < 18; i++) { 
    html += data.holes[1].par + '<br/>'; 
} 

И как это:

var html = ""; 
for(i = 1; i < 18; i++) { 
    html += JSON.stringify(data.holes[1].par) + '<br/>'; 
} 

И как это:

var html = ""; 
for(i = 1; i < 18; i++) { 
    html += JSON.parse(data.holes[1].par) + '<br/>'; 
} 

Но когда я делаю это таким образом я получаю сообщение об ошибке, как «Невозможно прочитать свойство» par «undefined» или «Uncaught SyntaxError: Неожиданный токен o». Кто-нибудь знает, что случилось?

+2

нет, где вы объявляя переменную я в цикле, и не жестко закодировать 'я <18', как может быть больше или менее. используйте 'data.holes.length' – Johan

+1

@musefan, вы действительно можете сделать это со строками. – Johan

+0

@Johan: Да, только что проверил (я удалю, чтобы не путать OP) – musefan

ответ

0

попробовать

for (var i = 1; i < data.holes.length; i++) { 
    html += data.holes[i].par + '<br/>'; 
} 

работает для меня проверить это fiddle

+0

Это работало как шарм! Огромное спасибо! – PieterB