Json 使用vs代码扩展名读写文件

Json 使用vs代码扩展名读写文件,json,visual-studio-code,vscode-extensions,Json,Visual Studio Code,Vscode Extensions,我正在构建一个使用vs代码扩展解析json的扩展。 所以我需要的是,它应该能够从特定文件夹加载.json文件,并遍历文件内容。 然后,它应该允许用户从中选择几个键,从中生成一个新的json文件,并将其保存在任何文件夹中 但是我找不到任何方法来读取和写入“vs代码扩展名”中的文件。请有人帮助我。VSCode扩展名正在node.js中运行。因此,您可以在扩展中使用任何可用的node.js包/模块。例如,签出。如果要读取文件的当前编辑状态,可以使用以下API函数: vscode.workspace.o

我正在构建一个使用vs代码扩展解析json的扩展。 所以我需要的是,它应该能够从特定文件夹加载.json文件,并遍历文件内容。 然后,它应该允许用户从中选择几个键,从中生成一个新的json文件,并将其保存在任何文件夹中


但是我找不到任何方法来读取和写入“vs代码扩展名”中的文件。请有人帮助我。

VSCode扩展名正在node.js中运行。因此,您可以在扩展中使用任何可用的node.js包/模块。例如,签出。

如果要读取文件的当前编辑状态,可以使用以下API函数:

vscode.workspace.openTextDocument(uri).then((document) => {
  let text = document.getText();
});

这将显示文件的当前状态,包括未持久化的更改
document
是一种类型,如果它有挂起的更改,则将
isDirty
设置为
true

由于扩展在nodejs中运行,您应该能够以通常的方式使用npm内置或安装的任何nodejs模块

出于您的目的,您可以使用内置的fs模块:

在扩展名中,您需要导入所需的模块,因此您的代码文件应包含以下内容:

let fs = require("fs");
然后以通常的方式使用这些方法,例如,
fs.fileReadSync(filename,encoding)


请不要以为只有一个例外。如果安装包含已编译二进制代码的nodejs模块,它将不会在扩展中运行,相反,您将看到一条错误消息,说明%1不是有效的Win32应用程序。但是纯javascript模块是可以的。

对于JSON,您只需要
需要
导入
JSON文件,例如:

const jsonObject = require('./myJSONfile.json');
// do something
对于带有注释的JSON,可以使用

操作完成后,您可以使用nodej.js的
fs
模块写入磁盘