[英]Jquery issue with getJSON
我的問題是一個JavaScript問題,我嘗試使用Jquery的$ .getJson函數解析一個Json文件,當我將它們分別放入變量中時,我注意到它占用了我認為更多的對象,這里是代碼JS:
$.getJSON(
url,
function(data) {
var content = '<h1>Applications</h1>';
content += '<ul>';
for (var pos in data){
var app = data[pos];
content += '<li>'+app.name+'</li>';
}
content += '</ul>';
$('div.apps').html(content);
}
這是json文件:
[
{
"name": "apidocs",
"staging": {
"model": "rack",
"stack": "ruby18"
}
,
{
"name": "apidocs2",
"staging": {
"model": "rack",
"stack": "php53"
}
,
{
"name": "apidocs3",
"staging": {
"model": "rack",
"stack": "java17"
}
]
因此,在我的html頁面中,我在全局性中有6個對象而不是3個。最后3個對象是“ undefined”,但我只希望json文件中的對象,因為firefox不接受undefined標記。
for ( var i = 0; i < data.length; i++ ) {
var app = data[ i ];
content += '<li>'+app.name+'</li>';
}
避免 for..in
循環。
for (var pos in data){
用通常的方式替換它:
for (var i=0; i<data.length; i++){ //use as data[i]
如果要使用for..in循環,請確保在使用data.hasOwnProperty(..)
之前使用它。 否則,您必然會獲得比預期更多的對象。 它們實際上是data
繼承的其他屬性。
更正JSON,您的開放標簽過多。
另外,請更正for循環。 使用var count = 0; count < data.length; count++
var count = 0; count < data.length; count++
由於您使用的是jQuery,請使用其完善的$.each
函數。
$.each( data, function( d ) {
content += '<li>' + d.name + '</li>';
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.