GAS オブジェクト連携完全ガイド|JSON操作・API連携・スプレッドシート実務まで解説
GAS(Google Apps Script)を触り始めた頃、多くの人が最初に覚えるのは「配列処理」です。
ただ、実務に入るとすぐに壁が来ます。
スプレッドシートの列が増える。APIから大量データを取得する。検索や集計ロジックが複雑になる。
そんなとき必要になるのが、 「オブジェクト連携(JSON風データ操作)」です。
旅行で例えるなら、ただ地図を見る段階から「旅全体のルート設計」を始める感覚。 コードも同じで、データ構造を理解すると一気に景色が変わります。
この記事ではGAS実務で頻出する、 オブジェクト・JSON・API連携・reduce活用 まで本番レベルで解説します。
GASのオブジェクトとは?初心者向け基本解説
オブジェクトとは、 「キー」と「値」をセットで管理するデータ構造です。
GAS オブジェクト基本例
let user = {
name: "鈴木",
age: 30
};
イメージとしてはこんな形です。
{
キー: 値,
キー: 値
}
配列が「順番で管理する箱」なら、 オブジェクトは「意味を持った情報の集合」です。
「0番目が名前、1番目が年齢だっけ…?」
こんな迷いが消えるだけでも保守性が劇的に変わります。
JSONとは?GAS実務で重要なデータ形式
JSON(JavaScript Object Notation)は、 データ交換で使われる標準的な形式です。
{
"name":"鈴木",
"age":30
}
GASを使っていると、 ほぼ毎日のようにJSONを扱います。
- API通信
- データ保存
- 外部サービス連携
- Webアプリ開発
実務では、 「JSONを扱える=外部システムと話せる」 と言っても大げさではありません。
配列とオブジェクトの違い|GAS実務で重要
配列の場合
["鈴木",30]
これだと後から見た人は困ります。
- 0番目は何?
- 1番目は年齢?部署?
- 列追加したら崩れない?
オブジェクトの場合
{
name:"鈴木",
age:30
}
メリットは非常に大きいです。
- 可読性向上
- 拡張しやすい
- バグを減らせる
- 保守性が高い
GAS上級者ほど、 「配列のまま戦わない」 という共通点があります。
GAS スプレッドシートをオブジェクト化する方法
ここが実務の核心です。
スプレッドシートをそのまま処理すると、 列番号依存が発生します。
例えば取得データ。
[
["名前","年齢"],
["鈴木",30],
["田中",25]
]
これをオブジェクトへ変換します。
const data = sheet.getDataRange().getValues();
const headers = data[0];
const objects = data.slice(1).map(row => {
let obj = {};
headers.forEach((header,i)=>{
obj[header] = row[i];
});
return obj;
});
結果はこちら。
[
{名前:"鈴木",年齢:30},
{名前:"田中",年齢:25}
]
旅行中の荷物整理みたいなものです。 適当に詰め込むより、 カテゴリごとに整理した方が後で圧倒的に楽。
GASも同じです。
Sheet → オブジェクト化 → 処理 → 出力
これが実務標準になります。
GAS オブジェクト操作まとめ
値を取得する
obj.name
obj["name"]
値を追加する
obj.email = "test@example.com";
ループ処理
for(let key in obj){
Logger.log(key,obj[key]);
}
オブジェクトを自在に扱えるようになると、 コードの自由度が大きく変わります。
GAS実務パターン|検索・フィルタ・加工
検索
const result =
objects.find(obj =>
obj.名前==="鈴木");
フィルタ
const result =
objects.filter(obj =>
obj.年齢 >= 30);
加工
const result = objects.map(obj => {
return {
...obj,
年齢2倍:
obj.年齢 * 2
};
});
スプレッドシートだけで無理やり処理するより、 圧倒的に見通しが良くなります。
GAS reduceとオブジェクトを組み合わせる方法
reduceと組み合わせると、 一気に実務感が増します。
グルーピング
const grouped =
objects.reduce((acc,obj)=>{
const key = obj.部署;
if(!acc[key]){
acc[key]=[];
}
acc[key].push(obj);
return acc;
},{});
部署ごとのJSON構造が完成します。
集計
const sum =
objects.reduce((acc,obj)=>{
return acc +
obj.売上;
},0);
売上集計や分析処理で頻出です。
JSON stringifyとparse|API連携必須知識
JSON → 文字列
const json =
JSON.stringify(obj);
文字列 → JSON
const obj =
JSON.parse(json);
API連携では必須。 ここを理解するとGASの世界が広がります。
GAS API連携の基本|UrlFetchApp活用
const response =
UrlFetchApp.fetch(url);
const data =
JSON.parse(
response.getContentText()
);
外部サービスのデータを取得し、 オブジェクトとして扱う。
これが実務GASの基本形です。
GAS初心者がやりがちなミス
キーの大文字小文字違い
obj["name"]
obj["Name"]
存在しないキー参照
obj.xxx
ヘッダーと列ズレ
スプレッドシートの列変更後によく発生します。
GAS上級者になる実務到達ライン
ここまで理解できると、 GASの実務レベルへかなり近づきます。
- 配列処理
- オブジェクト化
- reduce活用
- JSON操作
- API連携
特に重要なのは、 「配列のまま処理し続けないこと」 です。
GAS強者ほど、 データを構造化して考えます。
コードを書くというより、 「データ設計をしている」 という感覚です。
まとめ|GASのオブジェクト連携は実務力そのもの
最後に重要ポイントを整理します。
- オブジェクト = 構造化データ
- JSONはAPI連携の土台
- スプレッドシートはオブジェクト化する
- reduceで集計・グルーピングを作る
- 設計力が保守性を生む
GAS実務で一段上へ行く人は、 配列を卒業して構造化データへ進みます。
次にGASを書くときは意識してみてください。
「Sheet → オブジェクト → 処理 → 出力」
これが本番レベルへ入る入口です。







0 件のコメント:
コメントを投稿