GAS JSON操作完全ガイド|Google Apps ScriptでJSON設計・変換・API連携まで実務レベル解説

2026年5月29日金曜日

GAS JavaScript プログラミング

t f B! P L

GAS JSON操作完全ガイド|Google Apps Scriptで実務レベルのデータ設計・変換・API連携を習得する

Google Apps Script(GAS)を書き始めた頃、配列やオブジェクトは触れるけれど、 JSONになると急に難しく感じた経験はありませんか。

私自身、最初は「JSONってAPI用のデータ形式でしょ?」くらいの認識でした。 でもGASを使った業務自動化を深くやっていくと気づきます。

JSONを理解すると、Gmail・Spreadsheet・Drive・外部APIを自由につなげられるようになる。

この記事では、単なるJSON構文では終わりません。 実務で本当に使う「JSON設計」「変換パイプライン」「ネスト構造処理」まで、 次レベルのJSON操作を旅行好きの友達に話す感覚で、わかりやすく解説します。

JSON操作とは?Google Apps Scriptで重要な理由

結論から言うと、JSON操作とは「データ構造を自由に変換する技術」です。


API / Gmail / Spreadsheet / Drive
         ↓
      JSON化
         ↓
   加工・集計・分析
         ↓
      出力

GASでは、あらゆる情報が最終的にJSON的な形に集約されます。

  • APIから取得したデータ
  • スプレッドシートの行データ
  • Gmailの情報
  • Driveファイル情報
  • フォーム回答データ

JSONは単なる形式ではありません。 「共通言語」と考えると理解しやすくなります。

GAS JSON操作のレベル構造

初級:JSONの基本理解


JSON.parse()
JSON.stringify()
obj.key

まずは文字列とオブジェクトの変換。 JSONを読む・作るが最初の入口です。

中級:JSON加工処理

  • map()
  • filter()
  • reduce()
  • 構造変換

ここに入ると「データ加工」が楽しくなります。 大量データでも数行で処理できます。

上級:実務設計レベル

  • JSONスキーマ設計
  • ネスト構造操作
  • 変換パイプライン
  • API連携設計

実際の業務自動化では、この設計力が大きな差になります。

JSON設計ができる人はGAS開発が速い

初心者時代によく見る例です。

悪い例(配列依存)


["鈴木",30,"営業"]

3番目が部署なのか年齢なのか、後から見ると分からなくなります。

良い例(JSON設計)


{
 name:"鈴木",
 age:30,
 department:"営業"
}
  • 可読性が高い
  • 追加項目に強い
  • バグが減る
  • 保守しやすい

GAS実務では「処理を書く力」より、「構造を設計する力」が重要です。

Google Apps Script JSON操作の基本4パターン

① Normalize(正規化)

データ型を統一する工程です。 これを省くと後で必ず苦労します。


const normalized=data.map(row=>({
 name:row[0],
 age:Number(row[1]),
 date:new Date(row[2])
}));

年齢を文字列のまま扱うと、あとで集計が壊れます。 最初に整える癖をつけると安定します。

② filter(抽出)


const result=
users.filter(
 u=>u.age>=30
);

条件に合うデータだけ取り出せます。 営業管理や勤怠集計でも頻出です。

③ map(変換)


const result=
users.map(u=>({
 ...u,
 age2x:u.age*2
}));

新しい項目を追加するときの基本技術です。

④ reduce(集計)


const total=
users.reduce(
(acc,u)=>acc+u.age,
0
);
Normalize → Filter → Map → Reduce

これがGASデータ処理の黄金パターンです。

ネストJSON操作|実務で避けて通れない壁

APIを触り始めると、JSONは一気に複雑になります。


const data={
 departments:[
  {
   name:"営業",
   users:[
    {name:"鈴木",sales:100},
    {name:"田中",sales:200}
   ]
  }
 ]
};

部署の中に社員、その中に売上。 こうした「入れ子構造」は現場では普通です。

ネストJSONの合計計算


const total=
data.departments.reduce(
(acc,dept)=>{
 const sum=
 dept.users.reduce(
 (a,u)=>a+u.sales,
 0
 );

 return acc+sum;

},0);

reduceの入れ子を使うのがポイントです。 慣れると大規模データでも整理して処理できます。

flatMapでJSONをフラット化する

BI分析やレポート作成では一覧化が重要になります。


const flat=
data.departments.flatMap(
dept=>

dept.users.map(
user=>({
 dept:dept.name,
 ...user
})
)
);

結果はこうなります。


[
 {
  dept:"営業",
  name:"鈴木",
  sales:100
 }
]

ネストをほどいて一覧にする。 分析処理では必須スキルです。

JSON変換パイプライン設計が実務を変える

業務自動化が増えるほど、処理を分割したくなります。


const result=
data
.map(normalize)
.filter(condition)
.map(transform)
.reduce(grouping,{});

関数ごとに役割を分ける。 これだけで可読性が一気に向上します。


const normalize=row=>({
 name:row[0],
 age:Number(row[1])
});

const condition=
obj=>obj.age>=30;

const transform=obj=>({
 ...obj,
 age2x:obj.age*2
});

数か月後の自分が見ても理解できるコードになります。

GAS実務テンプレ|JSON化から出力まで


function jsonPipeline(){

const sheet=
SpreadsheetApp
.getActiveSpreadsheet()
.getActiveSheet();

const data=
sheet.getDataRange()
.getValues();

const headers=data[0];

const json=
data.slice(1)
.map(row=>{

let obj={};

headers.forEach(
(h,i)=>
obj[h]=row[i]
);

return obj;

});

const result=json
.filter(
u=>u.年齢>=30
)
.map(u=>({
...u,
年齢2倍:u.年齢*2
}));

}

この流れは業務自動化で本当に使います。 スプレッドシートをJSON化して処理する癖をつけるだけで、GAS開発効率は大きく変わります。

JSON操作でよくあるミス

ネスト地獄


data.a.b.c.d.e

深すぎる構造は管理が破綻します。 フラット設計を優先しましょう。

undefinedエラー


if(obj.xxx){
}

存在確認は必須です。 API連携では特によく発生します。

型変換ミス


"30"+10
→ "3010"

Number変換を忘れない。 これだけで謎バグをかなり防げます。

まとめ|JSONを制する人がGASを制する

JSON操作の本質は次の4つです。
  • 構造化する
  • 変換する
  • 集計する
  • 出力する

GAS実務ではJSONを避けて通れません。 API連携、データ分析、RPA、自動化。 すべてJSONが土台になります。

最初は配列処理だけでも十分です。 その次にオブジェクト。 正式には最後に「JSON構造を設計する力」へ。

ここまで来ると、Google Apps Scriptは単なる自動化ツールではなく、 本格的な業務システム構築ツールに変わります。

JSONを自由に扱えるようになる。 それが、GAS中級者から上級者へ進む大きな分岐点です。

このブログを検索

Blog Archive

Welcome



旅するWebライター「Hide」のブログへようこそ!

2年間の世界一周を終え、今は旅の思い出を言葉にしながら、AIやプログラミングという新しい冒険を楽しんでいます。最新技術を味方につけて、もっと自由でクリエイティブな発信を続けていきます!

人気の投稿

QooQ