无法使用jquery读取Json数据

时间:2014-02-25 20:37:26

标签: javascript jquery json

<!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数据,所以请详细解释。非常感谢。

1 个答案:

答案 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;
    }