<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body>
<div id="div1">sqq</div>
<div id="div2">dv2</div>
<script>
function getData(){
$.ajax({
type:"GET",
url:"j.json",
dataType:"json",
success: function(jsondata){
output(jsondata);
}
});
}
function output(json){
var Data = eval('(' + json + ')');
var html = '';
//alert(Data.length);
for(var i=0;i<Data.length;i++){
html += 'name' + Data[i].name + 'age' + Data[i].age;
}
document.getElementById('div1').innerHTML = html;
document.getElementById('div2').innerHTML = Data[0].name;
}
setTimeout(getData, 3000);
</script>
</body>
</html>
以上是我的代码和json文件内容是:
[{"name":"aaa","age":18},{"name":"bbb","age":19}]
我不明白为什么这不起作用。我想使用json数据更新div1的内容但没有任何反应。我试图读取json数据时有什么不对吗?我不熟悉处理Json数据,所以请详细解释。非常感谢。
答案 0 :(得分:3)
您不必使用'eval'。您将在'jsondata'var中收到json对象。
function output(json){
var html = '';
for(var i=0;i<json.length;i++){
html += 'name' + json[i].name + 'age' + json[i].age;
}
document.getElementById('div1').innerHTML = html;
document.getElementById('div2').innerHTML = json[0].name;
}