【GAS JSON操作完全ガイド】Google Apps Scriptで学ぶJSON変換・設計・API連携の実践テクニック

2026年5月6日水曜日

GAS JavaScript プログラミング

t f B! P L

【GAS JSON操作完全ガイド】Google Apps Scriptで学ぶJSON変換・設計・API連携の実践テクニック

旅行先でカフェに立ち寄りながらコードを書くことがありますが、 最近の業務自動化やAPI連携では「JSONを自在に扱えるかどうか」が生産性を大きく左右すると感じています。

Google Apps Script(GAS)を使った開発でも、JSON操作は避けて通れません。 スプレッドシートのデータ加工からAPI連携、レポート作成まで、 あらゆる場面でJSONが登場します。

この記事では単なる構文説明ではなく、 実務で使える「JSON設計」の考え方まで含めて詳しく解説します。

JSON操作とは?本質を理解しよう

まず最初に押さえておきたいのは、 JSONは単なるデータ形式ではないということです。

JSON操作の本質は、 「データ構造を自由に変換する技術」 にあります。

API
↓
JSON化
↓
加工・分析
↓
出力

GASの実務では以下のような流れが頻繁に発生します。

  • APIからデータ取得
  • JSON形式へ変換
  • 条件抽出・集計
  • スプレッドシートへ出力
  • メール送信やレポート生成

つまりJSONは、異なるシステム同士をつなぐ共通言語のような存在です。

GAS JSON操作のレベル別学習ロードマップ

初級:JSONを理解する

  • JSON.parse()
  • JSON.stringify()
  • オブジェクトアクセス
  • 配列操作

中級:データ加工を覚える

  • map()
  • filter()
  • reduce()
  • データ変換

上級:設計まで考える

  • JSONスキーマ設計
  • ネスト構造管理
  • API設計
  • データパイプライン構築

多くの人が中級で止まりますが、 実務で差が付くのは「JSON構造を設計できる人」です。

JSON設計が重要な理由

悪い例:配列依存

 

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

見た瞬間に「30は年齢?勤続年数?」と迷います。

良い例:JSON形式

 

{
  name:"鈴木",
  age:30,
  department:"営業"
}

こちらは意味が明確です。

  • 可読性が高い
  • 保守しやすい
  • 拡張しやすい
  • バグが減る

実務ではコードを書くよりも、 データ構造を設計する時間の方が長くなることも珍しくありません。

実務で頻出するJSON操作パターン

1. データの正規化(Normalize)

まずは型を揃えます。

 

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

文字列のまま扱うと後で思わぬ不具合を生むため、 最初に型変換するのが鉄則です。

2. 条件抽出(filter)

 

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

必要なデータだけを残します。

3. データ変換(map)

 

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

4. 集計(reduce)

 

const total = users.reduce(
  (acc,user) => acc + user.age,
  0
);

この4つだけで多くの業務処理が実現できます。

ネストJSONを扱う方法

APIレスポンスではネスト構造が頻繁に登場します。

 

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

部門ごとの売上を集計する場合はreduceを組み合わせます。

 

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

ネスト構造を理解すると、 複雑なAPIデータも怖くなくなります。

JSONフラット化が分析で重要な理由

BIツールやスプレッドシート分析では、 ネスト構造よりも一覧形式が好まれます。

 

const flat =
data.departments.flatMap(
 dept =>
 dept.users.map(user => ({
   dept: dept.name,
   ...user
 }))
);

結果は次のようになります。

 

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

この形に変換しておくと、 集計やグラフ作成が圧倒的に楽になります。

JSONパイプライン設計で保守性を上げる

大規模なGASでは処理を関数に分割します。

 

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

旅行の計画を立てるときも、 目的地・交通手段・宿泊先を整理すると楽ですよね。 JSON処理も同じで、 役割ごとに整理することで管理しやすくなります。

GASで使えるJSON操作テンプレート

実務では以下の流れが非常によく使われます。

  • スプレッドシート取得
  • JSON化
  • データ加工
  • 結果出力

このパターンを覚えるだけでも、 業務自動化の幅は大きく広がります。

JSON設計で失敗しないためのポイント

意味のあるキー名を付ける

 

{
  id:"001",
  name:"鈴木",
  department:"営業"
}

避けたい設計

 

{
  a:"鈴木",
  b:100,
  c:"営業"
}

後から見返したときに意味が分からなくなります。

ネストを深くしすぎない

 

data.a.b.c.d.e

このような構造は保守性を大きく下げます。

JSON操作でよくあるミス

  • undefinedエラー
  • 型変換忘れ
  • ネストの深掘りしすぎ
  • 都度JSON変換による性能低下

特に以下は初心者がよくハマります。

 

"30" + 10

結果は40ではなく3010になります。

数値計算では必ずNumber()を使いましょう。

まとめ|JSON操作を極めるとGAS開発が一段上がる

JSON操作の本質は、 単なるデータ保存ではありません。

  • 構造化する
  • 変換する
  • 集計する
  • 出力する

この流れを自在に扱えるようになると、 API連携、業務自動化、データ分析の難易度が大きく下がります。

初心者は「配列処理」から始め、 中級者は「オブジェクト処理」、 そして上級者は「JSON構造を設計する力」を身につけることを目指しましょう。

JSONを制する者は、GASによる業務システム構築を制すると言っても過言ではありません。

このブログを検索

Blog Archive

Welcome



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

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

人気の投稿

QooQ