使用json填充列表项

时间:2015-05-25 08:59:11

标签: javascript jquery json

我尝试使用JSON填充列表项但它似乎无法正常工作。有人可以证明我出错的地方。

<ul style='list-style: none;' id='listSubjet'></ul>
var val;
$.ajax({        
    url: 'subjects.json'
}).done(function(d) {
    val = d;
    $.each(val, function(i, su) {
        $('<li data-action = "' + su[0] + '">' + su[1] + '</li>').appendTo('#listSubjet');
    });
});

JSON:

[ 
    [ "Science", "Zoology"],
    [ "Science", "Botany"],
    [ "Maths", "Geometry"] 
]

修改

error: function(msg){
    console.log('error:', msg)
}

enter image description here

1 个答案:

答案 0 :(得分:0)

问题可能来自服务器,如果您的服务器使用内容类型text/plain进行响应,则val = d;将是String而不是Array。如果您可以将响应的内容类型更改为application/json或测试它是否为字符串,如果是,则JSON.parse该字符串将其转换为数组。

if(typeof d === 'string'){
    val = JSON.parse(d);
}

另外你应该把它添加到你的ajax: dataType:&#34; json&#34;, 并且只在success callback

处理您的回复