Javascript 加载不带服务器的JSON文件

Javascript 加载不带服务器的JSON文件,javascript,html,offline,Javascript,Html,Offline,我有一个大的json文件(+-10mb)。我想在HTML网页中的Javascript函数中加载这个json文件(myjson.json)。我在谷歌上找到了很多答案,比如“重命名为myjson.js”和添加var data=“yourjson”,在html文件中包括myjson.js并访问变量数据。这不是我想要的。我希望加载JSON文件而不重命名/更改它,也不需要Web服务器(没有AJAX) 有人能帮我吗 $.getJSON('myjson.json', function(myjson) {.

我有一个大的json文件(+-10mb)。我想在HTML网页中的Javascript函数中加载这个json文件(myjson.json)。我在谷歌上找到了很多答案,比如“重命名为myjson.js”和添加
var data=“yourjson”
,在html文件中包括myjson.js并访问变量数据。这不是我想要的。我希望加载JSON文件而不重命名/更改它,也不需要Web服务器(没有AJAX)

有人能帮我吗

  $.getJSON('myjson.json', function(myjson) {...}
这是行不通的

包含css和js函数非常简单,为什么没有Web服务器就无法访问本地存储的json文件

编辑:json文件的第一行

[{"participants": ["a", "b"], "conversation": [{"sender": "b", "created_at": "2019-09-23T22:04:42.083698+00:00", "text": "xxx"},
编辑:添加我的js进行澄清


编辑:不能,因为我在手机上,代码格式在这里不起作用

不幸的是,XHR和Fetch API都与HTTP紧密相连,除非涉及HTTP服务器,否则无法用于从相对路径加载资源。如果您通过
文件:
URL加载页面,您将无法使用XHR或Fetch获取该数据

只有两种方法可供您使用:

  • 切换到JavaScript而不是常规JSON,并使用
    标记(如前面在另一个答案中建议的)

  • 允许用户拖放JSON文件(或使用
    )以获取可随后加载的文件引用


不幸的是,XHR和Fetch API都与HTTP密不可分,不能用于从相对路径加载资源,除非涉及HTTP服务器。如果您通过
文件:
URL加载页面,您将无法使用XHR或Fetch获取该数据

只有两种方法可供您使用:

  • 切换到JavaScript而不是常规JSON,并使用
    标记(如前面在另一个答案中建议的)

  • 允许用户拖放JSON文件(或使用
    )以获取可随后加载的文件引用


我想您正在寻找FileReader:


如果可以使用,请查看JSON.parse():

我想您正在寻找FileReader:


如果可以使用,请查看JSON.parse():

因此,您不想做任何可以使用的事情;你只想做那些行不通的事。你需要我们的帮助,让那些不起作用的东西发挥作用。我说的对吗?@Flimzy加载css文件的方式相同。那不可能吗?本地css文件不需要服务器,那么为什么本地json文件需要服务器呢?css文件也是从服务器加载的。如果您在本地加载它,那么它将本地磁盘/系统视为服务器。“服务器”是为文件提供服务的任何计算机系统。本地加载时,这意味着您的本地系统。出于安全原因,无法执行此操作。(因为读取到JavaScript中的数据可能很敏感,如果双击附加到电子邮件的HTML文档,然后运行一些JS来搜索用户硬盘中的机密,以便将其发送回发送电子邮件的人,这将非常糟糕)XHR/Fetch是将JSON加载到文档中的唯一方法。因此,任何特定于它们的答案对于将JSON加载到文档中的所有方法都是通用的。(XHR和Fetch应用相同的安全限制)。所以它仍然是一个复制品。所以,你不想做任何有用的事情;你只想做那些行不通的事。你需要我们的帮助,让那些不起作用的东西发挥作用。我说的对吗?@Flimzy加载css文件的方式相同。那不可能吗?本地css文件不需要服务器,那么为什么本地json文件需要服务器呢?css文件也是从服务器加载的。如果您在本地加载它,那么它将本地磁盘/系统视为服务器。“服务器”是为文件提供服务的任何计算机系统。本地加载时,这意味着您的本地系统。出于安全原因,无法执行此操作。(因为读取到JavaScript中的数据可能很敏感,如果双击附加到电子邮件的HTML文档,然后运行一些JS来搜索用户硬盘中的机密,以便将其发送回发送电子邮件的人,这将非常糟糕)XHR/Fetch是将JSON加载到文档中的唯一方法。因此,任何特定于它们的答案对于将JSON加载到文档中的所有方法都是通用的。(XHR和Fetch应用相同的安全限制)。所以它仍然是一个复制品。