18

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

但我无法找到任何方法来读取和写入“vs 代码扩展”中的文件。有人可以帮帮我。

4

4 回答 4

26

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

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

这将向您显示文件的当前状态,包括未持久的更改。document是类型,如果它有待处理的更改TextDocument,则isDirty设置为。true

于 2016-08-11T12:37:02.610 回答
6

Since the extension runs in nodejs, you should be able to use any nodejs module built-in or installed by npm in the usual way.

For your purpose you will be OK with the built-in fs module: https://nodejs.org/dist/latest-v6.x/docs/api/fs.html

In your extension you will need to import the required module, so your code file should contain this:

let fs = require("fs");

and then use the methods in the usual way, eg. fs.fileReadSync( filename, encoding ) ...

Please not that there is one exception. If you install a nodejs module containing compiled, binary code, it will not run in the extension and instead you will see an error message saying something like %1 is not a valid Win32 application. Pure javascript modules are OK, though.

于 2016-12-02T09:29:03.873 回答
4

VSCode 扩展在 node.js 中运行。因此,您可以在扩展中使用任何可用的 node.js 包/模块。例如,查看这个问题以阅读 JSON

于 2016-08-05T11:42:42.417 回答
0

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

const jsonObject = require('./myJSONfile.json');
// do something

对于带有注释的 JSON,您可以使用node-jsonc-parser

操作完成后,就可以使用fsnodej.js的模块写入磁盘了。

于 2018-07-13T15:15:11.910 回答