1
AppScript를 배우려고하고 있는데 Google 스프레드 시트를 예로 사용하고 있습니다. 시트에 채워진 일부 데이터를 사용하여 간단한 JSON 개체를 만들고 싶습니다.Google 스프레드 시트에서 JSON 개체 만들기
표 예
Name ID Price Qty ABC 123 100 1 DEF 342 56 2 HIJ 233 90 3 IJK 213 68 5
나는이 유튜브 튜토리얼에 따라 시작 뭔가
[
{
"Name": "ABC",
"ID": "123",
"Price": 100,
"Qty": 1
},
{
"Name": "DEF",
"ID": "342",
"Price": 56,
"Qty": 2
},
{
"Name": "HIJ",
"ID": "233",
"Price": 90,
"Qty": 3
},
{
"Name": "IJK",
"ID": "213",
"Price": 68,
"Qty": 5
}
]
처럼하는 JSON을 원하는 :
https://www.youtube.com/watch?v=TQzPIVJf6-w. 그러나 비디오는 각 열 머리글을 객체로 만드는 것에 대해 이야기합니다. 어디에서 열 이름이
key
이고 행 값이
value
이 되길 원하십니까?
여기에 내 현재 AppScript 코드
function doGet() {
var result={};
var rewards = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1')
.getDataRange()
.getValues();
result.rewardObj = makeObject(rewards);
//Logger.log(result.rewardObj);
return ContentService.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON)
}
function makeObject(multiArray)
{
var obj = {};
var colNames = multiArray.shift();
var rowNames = multiArray.slice(0,1);
var rowCount = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getLastRow();
var colCount = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getLastColumn();
for(var j=0;j<4;j++)
{
for(var i=0;i<4;i++)
{
//obj[colNames] = rowNames.map(function(item){return item[i];});
obj[colNames[j][i]] = multiArray[j][i];
}
}
Logger.log(rowCount)
Logger.log(colCount)
Logger.log(multiArray[57][12]);
return obj;
}
출력은 단일 개체에게
{"rewardObj":{"Name":"ABC","ID":"123","Price":"100","Qty":"1"}}
PS입니다 : 내가 프로그래머가 아니에요, 난 그냥 hackey 방법으로 몇 가지 스크립트를 배우고있다. 기본을 모르고에 대한 사과 :)
는 와우 아름답게했다. 고맙습니다. 내가하는 일을 이해하기 위해 코드를 연구 중이다. 댓글을 추가 할 수 있다면 매우 유용 할 것입니다. 나는 내가했던 주요한 실수가 배열 대신 객체'obj'를 반환한다고 생각합니다. 맞습니까? – maverick340
특히이 코드 줄의 의미를 설명 할 수 있습니까? obj [headers [col]] = 행 [col]; – maverick340
@ maverick340 첫 번째 행 (열의 머리글)에서 값을 가져 와서 키로 설정합니다. 그런 다음 현재 행에있는 값을 가져 와서 값으로 설정합니다. 희망이 도움이됩니다! –