GASでGoogleDrive上のJSON内容を取得/上書きする方法

  • このエントリーをはてなブックマークに追加
  • LINEで送る

はじめに

Drive上にJSONファイルを置いておき、
それをGASから操作する際の基本的な方法を紹介します。

なぜGASでJSONファイルを使うのか

本文の前に、なぜこんなことをするのかについて。
社用webアプリ等に使う半端な量のデータを持つのに有用だからです。

社用とは言えwebアプリケーションですから、
操作すべき何らかの情報や、操作した結果情報を保存する必要があります。
これらをもし全てスプレッドシート上で管理したら、どうなるでしょうか。
web上の操作時にスプレッドシート上の数千行のデータを処理して・・・
となると、20秒とか30秒とかかかります。
webアプリを操作している時の読込みで30秒は流石に酷いですよね。
データ量が本当に多いならBigQueryなどデータベース運用が視野に入りますが、
DB使う程ではないけどシート管理も良くないという時、Drive上にJSONを置いておくのも1つの方法です。

読込のコード

以下のコードでJSONとして扱えます。

const file = DriveApp.getFileById("id");
const jsonStr = file.getBlob().getDataAsString("UTF-8");
const json = JSON.parse(jsonStr);

書き込み(上書き)のコード

以下のコードで書き込みできます。
drive上のテキストファイルの扱いとほぼ同じですね。
上書きとなりますので、差分のみ変更した場合はそのようなデータを予め作成する必要があります。

const file = DriveApp.getFileById("id");
file.setContent(JSON.stringify(json));

最後に

コード自体はごくシンプルですが、扱いようによっては非常に便利です。
いかなる時にドライブ上のJSONデータを運用するのかという点が重要だと思います。
getValuesが遅すぎると悩んでいる方は一度試してみてください。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*