我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Javascript读取json文件方法实例总结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Javascript读取json文件方法实例总结

1.使用Fetch API 方法在 JavaScript 中读取json

当我们想要从外部服务器或本地文件读取 JSON 文件到 JavaScript 文件时,使用 Fetch API 是更可取的方法

fetch('./data.json')
    .then((response) => response.json())
    .then((json) => console.log(json));

在上面,我们已经能够读取本地 JSON 文件。但不幸的是,当我们在浏览器中运行它时,可能会收到以下 CORS 错误,因为我们的文件不在服务器上。

为了解决这个问题,我们将确保 JSON 文件位于本地或远程服务器上。如果我们在 IDE 上使用 Live 服务器,则不会出现此错误。但是当我们直接加载文件时,会得到这个错误。

正如我之前所说,假设我们在远程服务器上有这个 JSON 文件,并试图用 JavaScript 读取这个文件,相同的语法将起作用: 

fetch('https://server.com/data.json')
    .then((response) => response.json())
    .then((json) => console.log(json));

2.使用 Import 语句在 JavaScript 中读取 JSON 文件

除了发出 HTTP 请求之外,我们还可以使用的另一种方法是 import 语句。这种方法有一些复杂性,但我们将解决所有问题:

假设我们有保存用户数据的 JSON 文件,可以通过这种方式使用 import 语句在 JavaScript 中读取这个 JSON 数据:

import data from './data.json';
console.log(data);

 不幸的是,这会抛出一个错误,说我们不能在模块之外使用 import 语句。当我们尝试在常规 JavaScript 文件中使用 import 语句时,这是一个标准错误,尤其是对于不熟悉 JavaScript 的开发人员。

为了解决这个问题,我们可以在引用 JavaScript 文件的 HTML 文件中添加 type="module" 脚本标签,如下所示:

<html lang="en">
    // ...
    <body>
        <script type="module" class="lazy" data-src="./index.js"></script>
    </body>
</html>

当我们这样做时,仍然会得到另一个错误,为了修复这个错误,我们需要将 JSON 文件类型添加到 import 语句中,然后我们就可以在 JavaScript 中读取 JSON 文件:

import data from './data.json' assert { type: 'JSON' };
console.log(data);

只要我们在本地或远程服务器上运行文件,它就可以完美地工作。但是假设我们在本地运行它,就会得到 CORS 错误。

小结

在本文中,我们学习了如何在 JavaScript 中读取 JSON 文件,以及在使用每种方法时可能遇到的错误。

当你要发出 HTTP 请求时,最好使用 Fetch API 方法。例如,假设我们从一个模拟 JSON 文件中获取数据,我们最终将从 API 中提取该文件。

不过,在我们不需要使用 HTTP 请求的情况下,可以使用 import 语句。当我们使用像 React、Vue 等与模块有关的库时,可以使用 import 语句。这意味着我们不需要添加模块的类型,也不需要添加文件的类型。

这两种方法都不需要你安装包或使用内置的库。选择使用哪种方法完全取决于你。

但是区分这些方法的一个快速提示是,Fetch API 通过发送 HTTP 请求来读取 JavaScript 中的 JSON 文件,而 import 语句不需要任何 HTTP 请求,而是像我们所做的其他所有导入一样工作

补充:js Fetch API

Fetch API提供了一个 JavaScript 接口,用于访问和操纵HTTP 管道的一些具体部分,例如请求和响应。它还提供了一个全局 fetch()方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。

这种功能以前是使用XMLHttpRequest 实现的。Fetch 提供了一个更理想的替代方案,可以很容易地被其他技术使用,例如 Service Workers。Fetch 还提供了专门的逻辑空间来定义其他与 HTTP 相关的概念,例如 CORS 和 HTTP 的扩展。

请注意,fetch 规范与 jQuery.ajax() 主要有三种方式的不同:

  • 当接收到一个代表错误的 HTTP 状态码时,从fetch()返回的 Promise 不会被标记为 reject, 即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。
  • fetch() 不会接受跨域 cookies;你也不能使用 fetch() 建立起跨域会话。其他网站的 Set-Cookie 头部字段将会被无视。
  • fetch 不会发送 cookies。除非你使用了credentials 的初始化选项。(自 2017 年 8 月 25 日以后,默认的 credentials 政策变更为 same-origin。Firefox 也在 61.0b13 版本中进行了修改)

一个基本的 fetch 请求设置起来很简单。看看下面的代码:

fetch('http://example.com/movies.json')
  .then(function(response) {
    return response.json();   //由于返回值不是真的json,而是json形式的文本,需要调用json()进行转换
  })
  .then(function(myJson) {
    console.log(myJson);
  });

这里我们通过网络获取一个 JSON 文件并将其打印到控制台。最简单的用法是只提供一个参数用来指明想 fetch() 到的资源路径,然后返回一个包含响应结果的promise(一个 Response 对象)。

当然它只是一个HTTP 响应,而不是真的JSON。为了获取JSON的内容,我们需要使用 json()方法( json()方法在 Body mixin 接口中定义, Request 和 Response 对象实现该接口,因此也实现了该方法)。确切来说,此时只是获取了一个Json形式的文本,通过Body.json(),读取 Response 对象并且将它设置为已读(因为 Responses 对象被设置为了 stream 的方式,所以它们只能被读取一次),并返回一个被解析为 JSON 格式的 Promise 对象。

注意:Body mixin 还有其他相似的方法,用于获取其他类型的内容。参考 Body

最好使用符合内容安全策略 (CSP)的链接而不是使用直接指向资源地址的方式来进行Fetch的请求。

总结

到此这篇关于Javascript读取json文件方法的文章就介绍到这了,更多相关js读取json文件方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Javascript读取json文件方法实例总结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Javascript读取json文件方法实例总结

json文件是一种轻量级的数据交互格式,下面这篇文章主要给大家介绍了关于Javascript读取json文件方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-16

java 读取文件方法的总结

java 读取文件方法的总结1、按字节读取 文件 内容2、按字符读取 文件 内容3、按行读取 文件 内容4、随机读取 文件 内容public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进
2023-05-31

Android 读取文件内容实现方法总结

Android 读取文件内容实现方法,这里整理了几种方法,大家需要可以看下。 如果要打开存放在/data/data//files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
2022-06-06

SpringBoot读取资源目录中JSON文件的方法实例

最近做项目遇到需要将json类型的配置文件引用到项目中,已经将读取json文件的方法封装成工具类,下面这篇文章主要给大家介绍了关于SpringBoot读取资源目录中JSON文件的相关资料,需要的朋友可以参考下
2023-05-15

Java读取Properties文件的七种方法的总结

Java读取Properties文件的方法总结 读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法:其实很多都是大同小异,概括起来就2种:先构造出一个InputStream来,然后调用Pr
2023-05-31

Go语言实现读取文件的方式总结

这篇文章主要为大家详细介绍了Go语言实现读取文件的几个方式,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,感兴趣的小伙伴可以收藏一下
2023-05-14

C++读取文件的四种方式总结

C++可以根据不同的目的来选取文件的读取方式,C++中有四种常见的读取方式,本文主要介绍了这四种方法的具体实现,需要的可以参考一下
2023-05-15

iOS读写json文件的方法示例

前言 本文主要给大家介绍了关于iOS读写json文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 一.获取沙盒路径 每个iOS应用都有自己专属的应用沙盒,应用沙盒就是文件系统中的目录。但是iOS系统会将每个应用
2022-05-29

Android 文件读写操作方法总结

Android 文件读写操作方法总结 在Android中的文件放在不同位置,它们的读取方式也有一些不同。本文对android中对资源文件的读取、数据区文件的读取、SD卡文件的读取及RandomAccessFile的方式和方法进行了整理。供参
2022-06-06

java读取XML文件的四种方法总结(必看篇)

JAVA操作XML文档主要有四种方式,分别是DOM、SAX、JDOM和DOM4J,DOM和SAX是官方提供的,而JDOM和DOM4J则是引用第三方库的,其中用的最多的是DOM4J方式。运行效率和内存使用方面最优的是SAX,但是由于SAX是基
2023-05-31

Golang读写二进制文件方法总结

使用 Golang 的 encoding/gob 包读写二进制文件非常方便,而且代码量也非常少,本文就来通过两个示例带大家了解一下encoding/gob的具体用法吧
2023-05-19

Golang实现按行读取文件的方法小结

Go语言按行读取文件方法总结:bufio.Scanner:逐行读取,支持分隔符和缓冲区控制;io.ReadLines(Go1.18+):一次性读取文件,按行分割;os.ReadFile+strings.Split:读取整个文件后按行分割;文件流+io.ReadLine:利用文件流按行读取;性能比较:io.ReadLines和bufio.Scanner适用于小文件,io.ReadLines适用于大文件,os.ReadFile通常较慢。选择方法根据文件大小和性能要求:小文件推荐io.ReadLines,大文件
Golang实现按行读取文件的方法小结
2024-04-02

python 读写txt文件 json文件的实现方法

首先第一步,打开文件,有两个函数可供选择:open() 和 file()①. f = open('file.txt',‘w')...file.close() ②. f = file('file.json','r')... file.cl
2022-06-04

Go语言读取文本文件的三种方式总结

工作中时不时需要读取文本,文本文件是最常见的文件类型。本文将利用Go语言从逐行、逐个单词和逐个字符三个方法读取文件,感兴趣的可以了解一下
2023-01-12

编程热搜

目录