当前位置: 首页 > 知识库问答 >
问题:

如何在ECMAScript 6中导入JSON文件?

卫阳炎
2023-03-14

如何访问ECMAScript 6中的JSON文件?

以下操作不起作用:

import config from '../config.json'

如果我尝试导入一个JavaScript文件,这很好。

共有3个答案

穆正青
2023-03-14

不幸的是,ES6/ES2015不支持通过模块导入语法加载JSON。但是...

有很多方法可以做到这一点。根据您的需要,您可以查看如何在JavaScript中读取文件(如果您在浏览器中运行,则可以选择FileReader),也可以使用其他问题中描述的其他加载程序(假设您使用的是NodeJS)。

IMO最简单的方法可能是将JSON作为JS对象放入ES6模块并导出它。这样,您就可以在需要的地方导入它。

此外,值得注意的是,如果您使用的是Webpack,那么JSON文件的导入在默认情况下也会起作用(因为Webpack

import config from '../config.json';

康烨伟
2023-03-14

2020年中期,使用ES模块导入JSON作为功能提交给TC39,并且(在本次编辑时)处于第3阶段,这是在被接受为规范之前的最后一个阶段(参见https://github.com/tc39/proposal-json-modules了解更多详细信息)。着陆后,您可以将其用作:

import someName from "./some/path/to/your/file.json";

其中,someName实际上是JSON数据描述的JS对象的变量名。(当然,请注意,这将从JSON源导入JavaScript,而不是“导入JSON”)。

如果您使用的是足够现代的捆绑程序(如esbuild等)或最新的transpiler(如babel),那么您就可以使用这种语法,而无需担心支持问题。

或者,如果您拥有JSON文件的所有权,您还可以使用最少的额外代码将JSON转换为有效的JS文件:

配置。js公司

export default
{
  // my json here...
}

然后

import config from '../config.js'

不允许导入现有。json文件,但执行作业。

孙恩
2023-03-14

在TypeScript或使用Babel中,您可以在代码中导入json文件

// Babel

import * as data from './example.json';
const word = data.name;
console.log(word); // output 'testing'

参考号:https://hackernoon.com/import-json-into-typescript-8d465beded79

 类似资料:
  • 问题内容: 如何在Ecmascript 6中访问json文件?以下无效: 如果我尝试导入JavaScript文件,则效果很好。 问题答案: 一个简单的解决方法: config.js 然后… 不允许导入现有的.json文件,但可以完成工作。

  • 问题内容: 我有一个如下文件: 我正在尝试将其导入文件。为此,我将其添加到类型定义中: 我正在这样导入。 在文件中,我将颜色用作。但是我得到一个错误: 属性’primaryMain’在类型’typeof“ * .json”上不存在 问题答案: 导入表单和模块声明需要就模块的形状,导出的内容达成一致。 编写时(自TypeScript 2.9导入JSON时,针对兼容模块格式的一种次佳实践, 请参见no

  • 问题内容: 我是React的新手,正在尝试从外部文件导入JSON 变量。我收到以下错误: 找不到模块“ ./customData.json” 有人可以帮我吗?如果我的变量位于外部JSON文件中,但没有该变量,则它可以工作。 index.js hobbies.js profile.js customData.json 问题答案: 一种不错的方法(不添加伪造的.js扩展名,用于代码而不用于数据和配置)

  • 问题内容: 例如,我有一个文件,它是一个对象数组(严格地形成),它很简单(没有嵌套的对象),就像这样(重要的是:它已经包含了id): 我想将它们全部导入到表的postgres db中。 当我将其作为json类型的列导入到像这样的表中并用其中列出的对象命名的列,然后使用sql获取这些值并将其插入到真实表中时,我发现了一些非常困难的方法。 但是有没有一种简单的方法就可以将json导入到postgres

  • 问题内容: 我正在使用Angular Maps构建地图应用程序,并希望导入JSON文件作为定义位置的标记列表。我希望将此JSON文件用作app.component.ts中的marker []数组。而不是在TypeScript文件中定义标记的硬编码数组。 导入此JSON文件以在我的项目中使用的最佳过程是什么?任何方向都非常感谢! 问题答案: 直到最近的打字稿更新之前,Aonepathan的单行代码都

  • 问题内容: 我正在尝试在React组件中加载language.json文件。当我想导入json文件时,第一步出现以下错误。这是错误: 我正在使用webpack,这是配置文件: 并且我已经安装了以下软件包: 这就是我尝试导入文件(ES6格式)的方式: 另外,我检查了json文件格式并进行了验证!那么,您认为问题出在哪里? 问题答案: azium是正确的,需要加载程序,但这是很好的配置: npm命令