【问题标题】:Apps Script - read column and put in JSON and stringApps 脚本 - 读取列并放入 JSON 和字符串
【发布时间】:2020-04-21 17:58:09
【问题描述】:

任务:

充满数据的列(未知长度) 例如。

|data1 |
|data2 |
|data3 |

我需要把它转换成 JSON(然后做其他事情,但我知道怎么做)

{
  "adminSettings":
  { "Value":
    {"whitelist":
      [
        "data1",
        "data2",
        "data3"
      ],
      "netWhitelist":"data1\ndata2\ndata3"
    }
  }
}

预期方式:

如果我理解正确,我应该能够在代码中指定大部分 JSON,然后将列加载到脚本中,然后

  1. 循环遍历它将创建的数组,并为每个单元格添加值到 whitelist 作为键。
  2. 循环遍历相同的数组并获取值并合并到字符串中添加“\n”,然后作为值添加到netWhitelist

我已经组装好了,但还远未完成,大多数手册都是关于如何从 JSON 中获取数据并放入工作表中,而不是其他方式。

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
               }
              }
             }



}

任何提示和示例都会有所帮助,我更愿意自己理解和解决。

【问题讨论】:

    标签: json google-apps-script google-sheets


    【解决方案1】:

    getValues() 返回一个二维数组。 Flatten 将其添加到一维数组并将其添加到 json(Array.join 以制作字符串):

    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')
                   }
                  }
                 }
    
    
    
    }
    

    【讨论】:

    • 我仍在与其他问题作斗争,但这解决了问题,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2018-07-30
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多