Reputation: 13
Task:
Column full of data (unknown length) eg.
|data1 |
|data2 |
|data3 |
I need to convert this into JSON ( and then do other things but I know how )
{
"adminSettings":
{ "Value":
{"whitelist":
[
"data1",
"data2",
"data3"
],
"netWhitelist":"data1\ndata2\ndata3"
}
}
}
Expected way:
If I understand correctly I should be able to specify most of this JSON in code and then load column into script and then
whitelist
as key.netWhitelist
I've assembled this but it's far from finished and most manuals are about how to take data from JSON and put in a sheet, not other way around.
function make_JSON() {
// Read data in column
var AUTO_data = activeSpreadsheet.getSheetByName("AUTO_data");
var values = AUTO_data.getRange("A2:A").getValues();
var JSON = {"adminSettings":
{"Value":
{"whitelist":
[
],
"netWhitelist": netWhitelist_string
}
}
}
}
Any tips and examples will help, I would prefer to understand and resolve it on my own.
Upvotes: 1
Views: 121
Reputation: 50855
getValues()
returns a 2D array. Flatten it to a 1D array and add it to json (Array.join to make a string):
function make_JSON() {
// Read data in column
var AUTO_data = activeSpreadsheet.getSheetByName("AUTO_data");
var values = AUTO_data.getRange("A2:A"+AUTO_data.getLastRow()).getValues().flat();
var JSON = {"adminSettings":
{"Value":
{"whitelist":values,
"netWhitelist": values.join('\n')
}
}
}
}
Upvotes: 2