在没有服务器的情况下加载 JSON 文件

Load a JSON file without server

我有一个很大的 json 文件 (+-10mb)。我想在位于 HTML 网页的 Javascript 函数中加载此 json 文件 (myjson.json)。我在 google 上找到了很多答案,比如 "rename to myjson.js" 和添加 var data = " yourjson" 并且在你的 html 文件中包含 myjson.js 并访问变量数据。这不是我想要的。我想在没有 renaming/altering 且没有网络服务器的情况下加载 JSON 文件(否 AJAX)。

谁能帮帮我?

  $.getJSON('myjson.json', function(myjson) {...}

不会工作。

包括 css 和 js 功能是如此简单为什么没有网络服务器就无法访问本地存储的 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 服务器,否则不能用于从相对路径加载资源。如果您通过 file: URL 加载页面,您将无法使用 XHR 或 Fetch 获取该数据。

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

  • 切换到 JavaScript 而不是常规 JSON 并使用 <script> 标签(正如之前在另一个答案中向您建议的那样)

  • 允许用户 drag/drop JSON 文件(或使用 <input type="file">)获取您随后可以加载的文件引用。

我认为您正在寻找 FileReader:https://developer.mozilla.org/en-US/docs/Web/API/FileReader

如果你有它的工作,看看 JSON.parse(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse