Javascript获取JSON数据的问题

Javascript获取JSON数据的问题,javascript,jquery,json,Javascript,Jquery,Json,修正:我必须上传文件到我的服务器才能运行ajax 所以现在我正试图从一个JSON文件中提取股票信息,但什么都没有得到。我警告了ajax.status,结果显示为0,因此我认为我的JSON文件没有被读取,因为我试图调用同一目录中的本地文件 这是我的HTML代码:我应该调出3个股票报价 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>

修正:我必须上传文件到我的服务器才能运行ajax

所以现在我正试图从一个JSON文件中提取股票信息,但什么都没有得到。我警告了ajax.status,结果显示为0,因此我认为我的JSON文件没有被读取,因为我试图调用同一目录中的本地文件

这是我的HTML代码:我应该调出3个股票报价

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Stock Quotes</title>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="css/clean.css">
</head>
<body>
    <!-- Script 11.x - quote.html -->
    <p>Apple: $<span id="quote"></span></p>
    <p>Google: $<span id="quote"></span></p>
    <p>Facebook: $<span id="quote"></span></p>
    <script src="js/json2.js"></script>
    <script src="js/ajax.js"></script>
    <script src="js/quote.js"></script>
</body>
</html>

您可以尝试像这样解析json吗:


var data=eval('('+ajax.responseText+')

我认为您的数据在从
.json
文件接收时已被解析。
您可以通过检查
ajax.responseText

请注意,JSON.parse接受作为字符串的参数。i、 e

JSON.parse("[{}]");//parsed successfully
JSON.parse([{}]);//error

您正在通过ajax阅读
JSON
文件,它将把您的文件内容解析为JSON对象作为ajax响应,因此无需再次将其解析为JSON,您可以直接将响应作为JSON对象使用

删除以下行:

 var data = JSON.parse(ajax.responseText);  

直接使用
var data=ajax.responseText

尝试从
JSON.parse(ajax.responseText)
中删除
JSON.parse
,它已经被解析过了,但仍然无法工作,我有一个单独的JSON文件,所以JSON.parse()应该可以在任何浏览器中工作。我发现我得到的是ajax.status=0,所以我猜这行代码甚至没有运行。我不明白为什么我把JSON文件放在同一个名为itResource path的目录中(在你的例子中是resources/quote.JSON)是根据HTML页面路径而不是执行它的JS文件来解析的。我不知道这是什么意思。断然的?那么我应该使用html加载脚本吗?如果加载正确的话。我想说的是,浏览器将尝试从当前html文件所在的目录中获取“resource/quote.json”。您可能希望打开调试器并查看“网络”选项卡以验证请求了哪个文件,因此我刚刚使用了它并删除了状态验证,并获得了一些要显示的内容。只有我的第一只苹果股票显示[这是json文件中的第一件事。var data=ajax.responseText;使用output.textContent=data[0];但我无法让它显示lI checked ajax.status,我得到0。
JSON.parse("[{}]");//parsed successfully
JSON.parse([{}]);//error
 var data = JSON.parse(ajax.responseText);