Javascript 在create-react-app+;中导入静态JSON;打字稿

Javascript 在create-react-app+;中导入静态JSON;打字稿,javascript,json,reactjs,typescript,Javascript,Json,Reactjs,Typescript,我正在学习typescript,目前正在尝试导入简单的json文件,该文件存储在使用CreateReact应用程序引导的项目中 data.json如下所示: { "test": "123", } import data from './data.json' 在我的App.tsx中,我试图使用json加载程序导入它。App.tsx和data.json都在同一个文件夹中,导入如下所示: { "test": "123", } import data from './data.json'

我正在学习typescript,目前正在尝试导入简单的json文件,该文件存储在使用CreateReact应用程序引导的项目中

data.json
如下所示:

{
  "test": "123",
}
import data from './data.json'
在我的
App.tsx
中,我试图使用
json加载程序导入它。
App.tsx
data.json
都在同一个文件夹中,导入如下所示:

{
  "test": "123",
}
import data from './data.json'

我已经尝试过解决这个问题的几种方法,但似乎没有任何效果。这些解决方案是
import*as data from./data.json'
const data=require('./data.json')
尝试将导入更改为:
import{test}from./data.json'
。这对我有用。
如果希望将其命名为数据,可以在.JSON文件中将
test
的名称更改为
data
。或者在导入后将其分配给另一个变量。

解决方案1:您可以使用以下语句创建一个名为data.json.ts的新文件:

导出默认值{your_json};
然后导入:

从'./path/data.json'导入{default as data};
参考:

解决方案2:这里的问题是,当您编译项目(例如编译到名为lib的文件夹中)时,lib文件夹中没有.json文件。您可以将该文件包含到生成中,也可以手动将该文件复制到lib文件夹中。 要导入文件,您必须使用:

  • const data=require('data.json')
  • 声明您自己的类型。 创建一个名为your_file_name.d.ts的新文件,并将以下代码粘贴到此文件中:
声明模块“*.json”
{
常量值:任意;
导出默认值;
}

您遇到了什么错误?您是否弹出了
create react应用程序
配置?您可能需要共享添加了
json加载程序的网页包配置部分。您导入的语句看起来很正确
var data=require('./data.json')尝试this@AlexanderStaroselsky我没有弹出,假设json加载程序嵌入在react脚本中。根据我尝试执行的操作,我会得到不同的错误:在本例中,
import*as data from./data.json'
我可以控制台记录数据,但错误是
…containers/App.tsx(3,23):找不到module./data.json'
。我假设您在使用TypeScript时弹出。您如何在
create react app
项目中将TypeScript与Webpack集成?您可能应该共享您的配置,以便其他人可以帮助回答您的问题。@AlexanderStaroselsky没有什么想共享的,我想,我只是运行了
创建反应应用程序我的应用程序--scripts version=react scripts ts
当我尝试导入时,就像您在沙箱中所做的那样,它给了我
找不到模块
。/data.json”错误。