vscode拡張機能を使用してjsonを解析する拡張機能を構築しています。したがって、私の必要性は、特定のフォルダーから.jsonファイルをロードし、ファイルのコンテンツを反復処理できる必要があることです。次に、ユーザーがそこからいくつかのキーを選択できるようにして、これから新しいjsonファイルを作成し、任意のフォルダーに保存できるようにする必要があります。
しかし、「vscodeextension」でファイルを読み書きする方法を見つけることができません。誰かが私を助けてくれませんか。
ファイルの現在の編集状態を読み取りたい場合は、次のAPIを使用できます workspace 関数:
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 )
...
例外が1つあることに注意してください。コンパイルされたバイナリコードを含むnodejsモジュールをインストールすると、拡張機能では実行されず、代わりに%1のようなものが有効なWin32アプリケーションではないというエラーメッセージが表示されます。ただし、純粋なjavascriptモジュールは問題ありません。
VSCode拡張機能はnode.jsで実行されています。したがって、拡張機能内で利用可能なnode.jsパッケージ/モジュールを使用できます。たとえば、 JSONを読むためのこの質問 をチェックしてください。
JSONの場合、次のようなJSONファイルをrequire
またはimport
する必要があります。
const jsonObject = require('./myJSONfile.json');
// do something
コメント付きのJSONの場合、 node-jsonc-parser を使用できます。
操作後、nodej.jsのfs
モジュールを使用してディスクに書き込むことができます。