我正在开发一个用于解析JSON数据的VS Code扩展程序。
我的需求是,它应该能够从特定文件夹中加载.json文件并迭代文件内容。然后,它应该允许用户选择其中的一些键,并将其组合成一个新的JSON文件,并将其保存在任意文件夹中。
但是我找不到在"VS Code扩展程序"中读写文件的方法。请问有人可以帮助我吗?
我正在开发一个用于解析JSON数据的VS Code扩展程序。
我的需求是,它应该能够从特定文件夹中加载.json文件并迭代文件内容。然后,它应该允许用户选择其中的一些键,并将其组合成一个新的JSON文件,并将其保存在任意文件夹中。
但是我找不到在"VS Code扩展程序"中读写文件的方法。请问有人可以帮助我吗?
vscode.workspace.openTextDocument(uri).then((document) => {
let text = document.getText();
});
这将显示文件的当前状态,包括未持久化的更改。 document
是类型为TextDocument
的对象,并且如果它有待处理的更改,则isDirty
设置为true
。
由于扩展程序在nodejs中运行,因此您应该能够以通常的方式使用任何内置或通过npm安装的nodejs模块。
对于您的目的,您可以使用内置的fs模块:https://nodejs.org/dist/latest-v6.x/docs/api/fs.html
在您的扩展程序中,您需要导入所需的模块,因此您的代码文件应包含以下内容:
let fs = require("fs");
然后以通常的方式使用方法,例如:fs.fileReadSync( filename, encoding )
...
请注意,有一个例外情况。如果您安装了一个包含编译的二进制代码的nodejs模块,则它将无法在扩展中运行,而是会看到一个错误消息,例如%1不是有效的Win32应用程序。纯javascript模块可以正常工作。
require
或 import
JSON文件,例如:const jsonObject = require('./myJSONfile.json');
// do something
如果需要带有注释的JSON,可以使用node-jsonc-parser。
操作完成后,您可以使用node.js的fs
模块将其写入磁盘。