Obtener JSON con una función personalizada de Google Spreadsheet en GAS

Con esta función personalizada de Google Spreadsheet, elaborada con Google Apps Script, podrás obtener tus datos en formato JSON



function datosenJSON(datos,cabecera) {
  //Por Ignacio Baixauli. Bajo licencia Creative Commons CCBYNC
  var nombreSet = SpreadsheetApp.getActive().getActiveSheet().getName();
  var objetoJSON = {};
  objetoJSON[nombreSet] = [];
  for (var nFila in datos) {
    objetoJSON[nombreSet][nFila] = {};
    for (var nColumna in datos[nFila]) {
      objetoJSON[nombreSet][nFila][cabecera[0][nColumna]] = datos[nFila][nColumna]
    }
  }
  return JSON.stringify(objetoJSON);
}


Cómo funciona

  1. Herramientas / Editor de secuencia de comandos 
  2. Archivo / Cambiar nombre
  3. Poner como nombre "MiProyecto" o cualquier otro que prefieras
  4. Cambia el código por defecto "MyFunction...." por el que te proporciono en este post
  5. Archivo / Guardar
Para ejecutar la función, rellena una hoja de datos con una fila que sea la cabecera. Por ejemplo:

-->
Cab1Cab2Cab3Cab4Cab5
A1B1C1D1E1
A2B2C2D2E2
A3B3C3D3E3
A4B4C4D4E4
A5B5C5D5E5
A6B6C6D6E6

Ahora inserta la función en una celda:

=datosenJSON(A2:E7;A1:E1)

El resultado es el siguiente:

-->{"Hoja 1":[{"Cab1":"A1","Cab2":"B1","Cab3":"C1","Cab4":"D1","Cab5":"E1"},{"Cab1":"A2","Cab2":"B2","Cab3":"C2","Cab4":"D2","Cab5":"E2"},{"Cab1":"A3","Cab2":"B3","Cab3":"C3","Cab4":"D3","Cab5":"E3"},{"Cab1":"A4","Cab2":"B4","Cab3":"C4","Cab4":"D4","Cab5":"E4"},{"Cab1":"A5","Cab2":"B5","Cab3":"C5","Cab4":"D5","Cab5":"E5"},{"Cab1":"A6","Cab2":"B6","Cab3":"C6","Cab4":"D6","Cab5":"E6"}]}
0