我是打字稿新手,有两个问题。
A。我想在 Visual Studio Code (3.6.2) 编辑器中使用以下代码在我的打字稿 (main.ts) 中导入一个简单的 JSON 文件:
import test from "./test.json";
console.log(test.name);
Run Code Online (Sandbox Code Playgroud)
我也尝试过import * as test from "./test.json";
JSON 文件(test.json)如下:
{"name": "testing",
"age":25}
Run Code Online (Sandbox Code Playgroud)
然而,当我输入“test.”时,打字稿给出了“name”、“age”的选项作为属性。
tsconfig.json 文件如下:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"esModuleInterop": true
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码抛出以下错误:
Cannot find module './test.json'. Consider using '--resolveJsonModule' to import module with '.json' extension
Run Code Online (Sandbox Code Playgroud)
由于类型定义是针对旧版本的,所以我没有使用它。我的打字稿版本是3.6.3。上述3个文件位于同一文件夹内。
-testfolder
- main.ts
- tsconfig.json
- test.json
Run Code Online (Sandbox Code Playgroud)
虽然还有一些其他类似的问题,但我在我的代码中找不到问题!我也用 submile text 3 进行了测试,但它也给出了同样的错误!
b. 如果我想从文件扩展名不同(不是 .json)的文件中解析 json 数据,我应该怎么做? …
我想将一个 json 数据映射到一个新的 javascript 对象,如下所示。这里的 json 数据是动态的,可以有更多的文件和更多的用户。群组信息是新的,依赖于父子信息。有人可以帮我吗?感谢您的时间。
前:
{
"userinfo": {
"/home/user/main/sub/info/1stfile.txt": {
"John": "something",
"Mike": "something",
"Merry": "something",
"Susan": "something"
},
"/home/user/main/info/2ndfile.txt": {
"Mulan": "something",
"James": "something"
},
"/home/user/main/info/3rdfile.txt": {
"Nancy": "something"
},
"/home/user/main/4thfile.txt": {
"Kamal": "something",
"Xian": "something",
"Mila": "something"
}
}
}
Run Code Online (Sandbox Code Playgroud)
后:
{
"name": "main",
"children": [
{
"name": "1stfile",
"children": [
{
"name": "John",
"group": "1"
},
{
"name": "Mike",
"group": "1"
},
{
"name": "Merry",
"group": "1"
},
{
"name": "Susan",
"group": "1"
} …Run Code Online (Sandbox Code Playgroud)