关于javascript:如何使用HTML读取JSON文件?

How do I read a JSON file using HTML?

这是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">


    $(function() {
        var thing = [];
        var bar = $.getJSON('C:\Users\cccompro\foo.json', function(obj) {
            for (i = 0; i < obj.length; i++) {
               thing.push(obj[i]);
            }
        });
    });

我不确定为什么它不起作用。" foo.json"包含一个对象数组。


如果要在Chrome或Chromium浏览器上的"问题"中尝试代码,请启动设置了--allow-file-access-from-files标志的浏览器实例。请注意,启动浏览器时应关闭打开的Chrome或Chromium实例,否则将使用打开的浏览器实例的配置文件夹(而不是设置标志)启动该实例。您可以在打开现有实例的情况下启动Chrome或Chromium,并通过使用--user-data-dir标志(其值设置为与打开的Chrome或Chromium实例不同的目录)来使用该标志。

从技术上讲,也可以在不使用window.webkitRequestFileSystem扩展名的情况下写入用户文件系统。尽管在扩展名中使用chrome.fileSystem,但提供了旨在实现读/写的API。

看到

  • jQuery load()仅在Firefox中工作?

  • 使用JS读取本地XML

  • 如何使用JavaScript写入文件(用户目录)?

  • 如何在文件:协议上使用webkitRequestFileSystem

  • JavaScript / Ajax写入文件

使用元素

  • 如何使用Java脚本打印文件夹内的所有txt文件

未经浏览器许可,您无法直接从用户硬盘读取文件。即使您有办法允许这样做,也将是一个巨大的安全性问题(结帐客人的回答)。

但是,您可以尝试使用户选择文件,然后使用Javascript读取文件。
这称为HTML 5文件API。

但是,这不适用于任何浏览器,在这种情况下,您可能仍然必须使用服务器。

有关此结帐本或这篇文章的更多信息。