无法在JavaScript中解析JSON文件

时间:2011-04-12 10:34:04

标签: json parsing file

我使用JavaScript来解析JSON文件。但我无法理解我得到的错误。请有人帮我解决这个话题。

**我的代码: Html文件:

<title>JSON Parser</title> 
<script type="text/javascript">  
    function webGLStart() {  
       var request = new XMLHttpRequest();
       request.open("GET","test.json");
       var my_JSON_object = JSON.parse(request.responseText);
     alert (my_JSON_object.result[0]);
    }

</script>  
</head>  
<body onload="webGLStart();">  
</body>  
</html> 

test.json文件:

{"result": [0,1,2,3,4] }
上述代码中的

警告不会在网页上显示任何内容。

3 个答案:

答案 0 :(得分:6)

直接使用jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">  
    $.getJSON('test.json', function(data) {         
    $.each(data, function(key, val) {
        console.log("key=" + key + " " + "val=" + val);
    });
});

有关更多示例代码,请查看此处:http://api.jquery.com/jQuery.getJSON/

答案 1 :(得分:3)

您发出Ajax请求的代码不正确。

首先,var request = new XMLHttpRequest();不适用于IE 5,6;即你需要制作XMLHttp的跨浏览器对象

其次,request.open("GET","test.json");并不表示此请求是异步的...即您缺少第三个布尔参数(true / false)

第三,您不是使用以下方式将请求发送到Web服务器:

request.send(null);

尝试以下Ajax链接:

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

尝试此链接以使用Javascript解析JSON:

http://json.org/js.html

希望这有帮助。

答案 2 :(得分:2)

Ajax是异步的。您试图在响应从服务器到达之前读取响应。哦,比这更糟糕。您正在打开请求但从未实际发送过。

您需要使用事件处理程序onreadystate change来在响应到达后运行代码,并且需要先将请求发送到服务器,然后才能获得响应。有decent guide to using XHR here