Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typescript中导入json文件导致;意外标记“;使用有效的json时出错_Json_Typescript - Fatal编程技术网

在typescript中导入json文件导致;意外标记“;使用有效的json时出错

在typescript中导入json文件导致;意外标记“;使用有效的json时出错,json,typescript,Json,Typescript,因此,我尝试将json文件导入到我的代码中。这是我的导入行: 从“/assets/fonts/helvetiker_bold.typeface.json”导入数据 下面是字体json文件(只是为了测试它是否会立即导入): {“hi”:“true”} 这是我的tsconfig.json文件: { "compilerOptions": { "moduleResolution": "node", "resolveJsonModule": true, "esModuleInt

因此,我尝试将json文件导入到我的代码中。这是我的导入行:

从“/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对象:

  • 我解决这个问题的方法是创建一个包含JSON对象的类,并将其与
    FontLoader.parse()函数结合使用,而不是从文件中加载JSON。这是这样完成的:

  • 创建了一个名为
    HelvetikerUtils.ts
    的文件,其中包含我的json对象:

  • 就我个人而言,我从未成功地将其与
    import
    一起使用过,但是相当于
    const data=require('./assets/fonts/helvetiker_bold.typeface.json')
    的方法似乎对我来说是一种有效的方法workaround@apokryfos我想我已经试过了。当我在浏览器中运行代码时,我得到了
    ReferenceError:require未定义
    也许你需要将
    module
    切换到
    commonjs
    ,以使其正常工作。@apokryfos我也尝试过,但仍然得到了require未定义的错误/:真的想寻找一个不需要
    require
    因为我从来没有尝试过让require单独工作,所以我从来没有尝试过让它与
    import
    一起工作,但是相当于
    const data=require('./assets/fonts/helvetiker_bold.typeface.json')
    的方法对我来说似乎是一种有效的方法workaround@apokryfos我想我已经试过了。当我在浏览器中运行代码时,我得到了
    ReferenceError:require未定义
    也许你需要将
    module
    切换到
    commonjs
    ,以使其正常工作。@apokryfos我也尝试过,但仍然得到了require未定义的错误/:真的想寻找一个不需要
    require
    因为我试过的东西都不需要工作
    export class HelvetikerUtil {
        constructor() { }
    
        data: any = <YOUR_FONT_JSON_HERE>
    }
    
    let myFont = new HelvetikerUtil;
    let FONTLoader = new FontLoader();
    let font = FONTLoader.parse(myFont.data);