如何让 javascript 读取 .json 文件?
我的脚本目前如下所示:
<script type="text/javascript">
function updateMe(){
var x = 0;
var jsonstr = '{"date":"July 4th", "event":"Independence Day"}';
var activity=JSON.parse(jsonstr);
while(x<10){
date = document.getElementById("date"+x).innerHTML = activity.date;
event = document.getElementById("event"+x).innerHTML = activity.event;
x++;
}
}
</script>
其中 date"x" 和 event"x" 是一系列 html 标签。该函数在页面加载(onload)时运行。我的目标是仅从本地 .json 文件而不是我上面获得的硬代码执行完全相同的操作。我已经查看了 http://api.jquery.com/jQuery.getJSON/。
本地 .json 文件如下所示:
{"date":"July 4th", "event":"Independence Day"}
有什么建议吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
假设您说 .json 文件时指的是“本地文件系统上的文件”。
您需要将 json 数据保存为 jsonp 格式,并使用
file:// url
来访问它。您的 HTML 将如下所示:
文件 c:\data\activity.jsonp 包含以下行:
Assuming you mean "file on a local filesystem" when you say .json file.
You'll need to save the json data formatted as jsonp, and use a
file:// url
to access it.Your HTML will look like this:
And the file c:\data\activity.jsonp contains the following line:
如果您将 JSON 作为字符串,
JSON.parse()
将正常工作。由于您要从文件加载 json,因此需要对其执行 XMLHttpRequest。例如(这是 w3schools.com 示例):它在这里不起作用,因为该文件不位于此处。转到这个 w3schools 示例: https://www.w3schools.com/js/ tryit.asp?filename=tryjson_ajax
这是 JSON.parse() 的文档: https://developer.mozilla.org/en/docs/Web /JavaScript/Reference/Global_Objects/JSON/parse
以下是摘要:
这是使用的示例:
以下是来自 https://developer.mozilla.org/ 的 XMLHttpRequest 摘要en-US/docs/Web/API/XMLHttpRequest:
如果您不想使用 XMLHttpRequests,那么 JQUERY 方式(我不确定为什么它不适合您)是 http://api.jquery.com/jQuery.getJSON/
由于它不起作用,我会尝试使用 XMLHttpRequests
您也可以尝试 AJAX 请求:
文档:http://api.jquery.com/jquery.ajax/
If you have your JSON as a string,
JSON.parse()
will work fine. Since you are loading the json from a file, you will need to do a XMLHttpRequest to it. For example (This is w3schools.com example):It will not work here as that file isn't located here. Go to this w3schools example though: https://www.w3schools.com/js/tryit.asp?filename=tryjson_ajax
Here is the documentation for JSON.parse(): https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
Here's a summary:
Here's the example used:
Here is a summary on XMLHttpRequests from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest:
If you don't want to use XMLHttpRequests, then a JQUERY way (which I'm not sure why it isn't working for you) is http://api.jquery.com/jQuery.getJSON/
Since it isn't working, I'd try using XMLHttpRequests
You could also try AJAX requests:
Documentation: http://api.jquery.com/jquery.ajax/
实际上,您正在寻找 AJAX CALL,其中您将用 JSON 文件的链接替换 URL 参数值以获取 JSON 值。
Actually, you are looking for the AJAX CALL, in which you will replace the URL parameter value with the link of the JSON file to get the JSON values.
你可以这样做......
只需给出 json 文件的正确路径...
只需获取数据并将其附加到 div...最初在警报中打印长度。
这是我的 Json 文件:abc.json
You can do it like...
Just give the proper path of your json file...
Simply getting the data and appending it to a div... Initially printing the length in alert.
Here is my Json file: abc.json
不是将数据存储为纯 JSON,而是将其存储为 JavaScript 对象文字;
例如
然后您可以在 HTML 中执行以下操作
Instead of storing the data as pure JSON store it instead as a JavaScript Object Literal;
E.g.
You can then do the following in your HTML