【发布时间】:2020-11-24 12:45:25
【问题描述】:
我目前正在尝试使用一个脚本,以便将谷歌工作表数据转换为包含相邻和嵌套对象的 json。目前我拥有的是一个脚本,它可以允许工作表数据转换为允许嵌套对象的 json,但它不允许结束一个对象并开始一个新对象,因此不能有任何相邻对象,而是有一个包含子对象的父对象,这不是我想要的。我希望我只是在当前脚本中遗漏了一些东西,以便能够结束和启动新对象,所以我将在下面添加脚本,感谢您对此问题的任何贡献!
function formJSON() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var data = sheet.getDataRange().getValues();
var currentObject = {};
var output = currentObject;
for (var i = 0; i < data.length; i++) {
if (data[i][1]) {
currentObject[data[i][0]] = data[i][1];
}
else {
var newObject = {};
currentObject[data[i][0]] = newObject;
currentObject = newObject;
}
}
Logger.log(JSON.stringify(output));
}
编辑:在这里,我将提供当前结果与我所追求的结果。第一个结果来自我作为图像添加的工作表。
当前结果:
{
"": {
"asset": {
"button": {
"viewPDF": "View PDF",
"viewSurvey": "View Survey",
"viewPPT": "View PPT",
"viewLink": "View Link",
"rejoinMeeting": "Rejoing Meeting",
"labels": {
"associatedWith": "Associated Content",
"attendees": "Attendees in this session",
"filesAndDocs": "Files and Documents",
"location": "Location",
"messages": {
"errorRetrieving": "There was an error retrieving the session details",
"noAttendees": "Nobody is watching this session currently",
"browser": {
"messages": {
"notSupported": "Your browser is not supported",
"update": "Please update"
}
}
}
}
}
}
}
}
期望的结果:
"asset": {
"buttons": {
"viewPDF": "View PDF",
"viewSurvey": "View Web Page",
"viewPPT": "View Presentation",
"viewLink": "View Link",
"rejoinMeeting": "Rejoin Meeting"
},
"labels": {
"associatedWith": "Associated Content",
"attendees": "Attendees in this Session",
"filesAndDocs": "Files and Documents",
"location": "Location",
"notStarted": "This session hasn't started yet.",
"playlist": "Session Playlist",
"premiumSponsors": "Premium Sponsors",
},
"messages": {
"errorRetrieving": "There was an error retrieving the session details.",
"noAttendees": "Nobody is watching this session currently",
"pointsForDocument": "viewing a document",
"pointsForRatingAsset": "rating this asset",
"pointsForVideo": "watching a video",
"problemSaving": "There was a problem saving your rating. Please try again."
}
},
"browser": {
"messages": {
"notSupported": "Your Browser Is Not Supported",
"update": "Please download the most up-to date version of one of the following and try again"
}
},
【问题讨论】:
-
您能否提供所需结果 JSON 对象的示例结构?
-
是的,我会进行编辑
-
我已经更新了
-
我正在看。
-
谢谢!几天来一直试图解决这个问题,哈哈
标签: javascript json google-apps-script google-sheets data-conversion