不幸的是,ES6/ES2015不支持通过模块导入语法加载JSON。但是...
有很多方法可以做到这一点。根据您的需要,您可以查看如何在JavaScript中读取文件(如果您在浏览器中运行,则可以选择FileReader),也可以使用其他问题中描述的其他加载程序(假设您使用的是NodeJS)。
IMO最简单的方法可能是将JSON作为JS对象放入ES6模块并导出它。这样,您就可以在需要的地方导入它。
此外,值得注意的是,如果您使用的是Webpack,那么JSON文件的导入在默认情况下也会起作用(因为Webpack
import config from '../config.json';
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文件,但执行作业。
在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命令