【GAS・JavaScript対応】JSON整形とは?実務で使えるJSONフォーマット変換・データ加工完全ガイド

2026年6月4日木曜日

GAS JavaScript プログラミング

t f B! P L

【GAS・JavaScript対応】JSON整形とは?実務で使えるJSONフォーマット変換完全ガイド

旅行中に現地の地図や時刻表を整理するように、プログラミングの世界でもデータを使いやすい形へ整える作業があります。 それが「JSON整形」です。

JSONを扱い始めた頃は「読み取れればOK」と思いがちですが、実務になると事情は変わります。 API連携、データ分析、スプレッドシート出力、BIツールへの連携など、さまざまな場面でデータを最適な形へ変換する必要があります。

この記事では、JSON整形の基本から実務レベルの活用方法まで、GAS(Google Apps Script)やJavaScriptのサンプルコードを交えながら詳しく解説します。


JSON整形とは?初心者向けにわかりやすく解説

JSON整形とは、JSONデータを目的に応じて加工し、扱いやすい形式へ変換することです。

簡単に言えば、

「使えるデータに仕上げる工程」

と考えると理解しやすいでしょう。

整形前のJSON

[
  { "name": "鈴木", "age": "30", "dept": "営業" },
  { "name": "田中", "age": "25", "dept": "開発" }
]

整形後のJSON

[
  { "name": "鈴木", "age": 30 },
  { "name": "田中", "age": 25 }
]

不要な項目を削除し、文字列だった年齢を数値へ変換しています。 このような処理がJSON整形の基本です。


JSON整形が必要になる理由

実際の開発現場では、取得したデータをそのまま利用できるケースは多くありません。

  • API送信用の形式へ変換する
  • スプレッドシートへ出力する
  • 分析用データを作成する
  • 不要な項目を削除する
  • データ型を統一する
  • システム間のデータ連携を行う

実務では以下の流れで処理されることがほとんどです。

入力 → 加工 → 出力

JSON整形はまさにこの「加工」の部分を担っています。


JSON整形の基本パターン5選

1. フィールド削減

必要な項目だけを取り出す方法です。

const result = data.map(obj => ({
  name: obj.name,
  age: Number(obj.age)
}));

不要な情報を削除することで処理速度や可読性が向上します。

2. キー名の変更(リネーム)

const result = data.map(obj => ({
  userName: obj.name,
  userAge: obj.age
}));

外部APIや他システムの仕様に合わせる際によく利用されます。

3. 型変換

const result = data.map(obj => ({
  ...obj,
  age: Number(obj.age),
  date: new Date(obj.date)
}));

実務で最も頻繁に登場するのが型変換です。 特に文字列から数値への変換は必須スキルと言えるでしょう。

4. フラット化

ネスト構造を浅くして扱いやすくします。

const flat = {
  name: obj.name,
  ...obj.info
};

分析やCSV出力でよく利用されます。

5. ネスト化

const nested = {
  name: obj.name,
  info: {
    age: obj.age,
    dept: obj.dept
  }
};

API送信用データ作成でよく利用されるテクニックです。


実務でよく使うJSON整形パターン

APIレスポンスの整形

const formatted = data.map(item => ({
  id: item.user_id,
  name: item.user_name,
  age: Number(item.user_age)
}));

APIごとに命名規則が異なるため、統一フォーマットへ変換する場面は非常に多くあります。

スプレッドシート出力用データ作成

const headers = ["name", "age"];

const output = data.map(obj =>
  headers.map(h => obj[h])
);

GASでは二次元配列への変換が定番です。

集計データ生成

const result = Object.entries(grouped).map(([key, value]) => ({
  category: key,
  total: value
}));

BIツールやレポート作成で頻繁に登場します。

条件付き整形

const result = data
  .filter(obj => obj.age >= 30)
  .map(obj => ({
    name: obj.name,
    age: obj.age
  }));

必要なデータだけを抽出できるため、大規模データ処理で重宝します。


実務で使われるJSON整形パイプライン

現場では複数の変換処理を組み合わせて利用します。

JSON
↓ normalize
↓ filter
↓ transform
↓ group
↓ format

実際のコード例はこちらです。

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

処理を段階的に分けることで保守性が大幅に向上します。

関数分離のベストプラクティス

const normalize = obj => ({
  name: obj.name,
  age: Number(obj.age)
});

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

後から仕様変更が発生しても修正箇所を最小限にできます。


ネストJSON整形の実務テクニック

flattenで分析用データを作る

const flat = data.flatMap(parent =>
  parent.children.map(child => ({
    parentName: parent.name,
    ...child
  }))
);

売上分析やアクセス解析データの作成でよく使われます。

ネストデータを集約する

const result = data.map(dept => ({
  dept: dept.name,
  total: dept.users.reduce((acc, u) => acc + u.sales, 0)
}));

部署別売上やカテゴリ別集計で活躍します。


JSONの出力形式を整形する方法

見やすいJSON表示

const pretty = JSON.stringify(obj, null, 2);

ログ確認やデバッグ作業で欠かせません。

CSV形式へ変換

const csv = data.map(obj =>
  `${obj.name},${obj.age}`
).join("\n");

API送信用JSON生成

const payload = JSON.stringify({
  users: result
});

GASで使えるJSON整形テンプレート

function jsonFormat() {
  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 formatted = json
    .map(obj => ({
      name: obj["名前"],
      age: Number(obj["年齢"])
    }))
    .filter(obj => obj.age >= 30);

  const output = formatted.map(obj => [obj.name, obj.age]);

  sheet.getRange(2, 1, output.length, 2).setValues(output);
}

スプレッドシートからJSON生成、整形、再出力まで一通り実装できる実務向けテンプレートです。


JSON整形でよくある失敗例

型変換を忘れる

"30"

文字列と数値は別物です。計算時のバグ原因になります。

undefinedエラー

obj.xxx

存在確認をせずに参照するとエラーの原因になります。

深すぎるネスト

a.b.c.d.e

コードが読みにくくなり、保守性も大幅に低下します。


まとめ|JSON整形はデータ活用の仕上げ工程

JSON整形は単なるデータ変換ではありません。

「目的に合わせてデータを最適化する技術」

GASやJavaScriptを使った開発では、API連携・データ加工・分析・レポート作成などあらゆる場面で登場します。

  • 型を統一する
  • 不要データを削除する
  • キー名を整理する
  • ネストを最適化する
  • 出力先に合わせて整形する

JSONを「読む」段階から、「自在に整形する」段階へ進めると、実務で扱える案件の幅が一気に広がります。

まずはフィールド削減・型変換・フラット化の3つを習得し、GASやJavaScriptで実際に手を動かしながら経験を積んでいきましょう。

このブログを検索

Welcome



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

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

人気の投稿

QooQ