GASでgetValuesで得た値をJSON変換する

対象データ

下記の表を、Google App Scriptで取り出すことを想定する

 

単純に取り出すと二次元配列になる

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1:C4').getValues()
[
  [company, product, price], 
  [apple, iphone11, 78900.0], 
  [samsung, galaxy S10, 85000.0], 
  [google, pixel3, 95000.0]
]

求めているモノ😎😎😎

[
  {
    "product": "iphone11", 
    "price": 78900.0,
    "company": "apple"
  }, 
  {
     "product": "galaxy S10", 
     "price": 85000.0,
     "company": "samsung"
  }, 
  {
     "product": "pixel3", 
     "price": 95000.0, 
     "company": "google"
  }
]

JSON変換をする関数を作った

どうぞ、コピペでお使いください。
GASはES6に対応していないので、ちょっと古くさいコードになってます

//変換する関数
function parse2Json(values) {
  return values.map(function (value, i, arr) { 
    var obj = {};
    if(i === 0) return;
    for(var j = 0 ; j < value.length ; j++) {
      obj[arr[0][j]] = value[j] 
    }
    return obj; 
  }).splice(1,values.length - 1);
}

function myFunction() {
  var row = sheet.getRange('A1:C4').getValues();
  
  //使い方
  var jsonArray = parse2Json(row);
}

コメントを残す

あなたのメールアドレスは公開されません。必須項目には印がついています *

© 2023 Be full stack | WordPress Theme: Annina Free by CrestaProject.