Json 使用vs代码扩展名读写文件
我正在构建一个使用vs代码扩展解析json的扩展。 所以我需要的是,它应该能够从特定文件夹加载.json文件,并遍历文件内容。 然后,它应该允许用户从中选择几个键,从中生成一个新的json文件,并将其保存在任何文件夹中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代码扩展名”中的文件。请有人帮助我。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
模块写入磁盘