json - 在 typescript 中导入 json 文件导致带有有效 json 的“意外令牌”错误
问题描述
所以我按照这篇文章尝试将一个 json 文件导入到我的代码中。这是我的导入行:
import data from './assets/fonts/helvetiker_bold.typeface.json';
这是字体 json 文件(只是为了测试它是否会立即导入):
{"hi":"true"}
这是我的 tsconfig.json 文件:
{
"compilerOptions": {
"moduleResolution": "node",
"resolveJsonModule": true,
"esModuleInterop": true,
"target": "es5",
"module":"es2015",
"lib": ["es2015", "es2016", "es2017", "dom"],
"strict": true,
"sourceMap": true,
"declaration": true,
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"declarationDir": "dist/types",
"outDir": "dist/lib",
"typeRoots": [
"node_modules/@types"
]
},
"include": [
"src"
]
}
这是我在尝试编译时遇到的错误:
[!] Error: Unexpected token
src\assets\fonts\helvetiker_bold.typeface.json (1:5)
1: {"hi":"true"}
^
我不知道它在抱怨什么..任何帮助表示赞赏
解决方案
我对这个问题的解决方案是创建一个包含我的 JSON 对象的类,并将它与FontLoader.parse()
函数结合使用,而不是从文件中加载 JSON。这是这样完成的:
- 创建了一个
HelvetikerUtils.ts
包含我的 json 对象的文件:
export class HelvetikerUtil {
constructor() { }
data: any = <YOUR_FONT_JSON_HERE>
}
- 在任何地方导入此类
import { HelvetikerUtil } from './HelvetikerUtil';
- 使用 FontLoader.parse() 加载数据
let myFont = new HelvetikerUtil;
let FONTLoader = new FontLoader();
let font = FONTLoader.parse(myFont.data);
推荐阅读
- swift - 在Swift中使用符合Error协议的枚举时如何避免重新解析错误
- rust - 如何在 match 语句中使用 const 范围?
- r - 将常数定义为 r 回归的系数
- user-interface - 仅使用代码在 Roblox 中创建 textLabel
- reactjs - ReactJS - 在为新行输入数据时,如何将单元格文本包装在 MaterialTable 中?
- c# - 注入一项使用来自多个接口的方法的服务
- kubernetes - VSCode devcontainer 连接到 vm 上的 kubernetes 集群
- javascript - 你如何让每个表格行保存 onClick 参数?
- applescript - 如何使用 JXA 在 Numbers 中切换工作表焦点?
- powershell - 为什么 try catch 块无法正常工作并出现错误