GAS - スプレッドシートのデータをjsonに変換
お仕事でスプレッドシートにまとまったデータをjson形式にする必要があったので、GASことGoogle Apps Scriptでjsonに変換するスクリプトを書いたのでメモします。
元データは、1行目がkeyで2行目以降がkeyに対応するvalueとなるような構造でした。
元データ↓
jsonにパース後↓
コード↓
function myFunction() {
//スプレッドシートで表示中のシートを取得
var sheet = SpreadsheetApp.getActiveSheet();
//埋まっているセルの値を全て取得
var values = sheet.getSheetValues(1, 1, sheet.getLastRow(), sheet.getLastColumn());
//json化されたデータをシート上にダイアログで表示
Browser.msgBox(JSON.stringify(toJson(values)));
}
function toJson(values) {
//param1: 何行目からspliceするか指定
//param2: 何行分spliceするか指定
//1行目を1つspliceしたものをkeysへ代入
var keys = values.splice(0, 1)[0];
//valuesの1行1行をコールバックで処理
return values.map(function(row) {
var obj = {};
row.map(function(column, index) {
//各keyとvalueの対を連想配列にする
obj[keys[index]] = column;
});
return obj;
});
}