[英]How do I convert an Array with a JSON string into a JSON object (ruby)
[英]How do I convert a couple of Google Sheets columns into a JSON string?
我正在編寫一段代碼,它將兩列 (A, B) 轉換為具有 JSON 格式的鍵/值對。 我不知道如何使它工作。 我目前有一個函數可以讀取值的頂行(鍵)和底行,但我無法讓它顯示中間的行。 我不是工程師或開發人員,但我喜歡編碼。
該表如下所示:
+-------+-------------+ | A | B | +-------+-------------+ | code | description | +-------+-------------+ | brand | microsoft | +-------+-------------+ | size | large | +-------+-------------+ | color | green | +-------+-------------+
我期待得到這樣的 JSON 字符串:
[{"code":"brand","description":"microsoft"}, {"code":"color","description":"green"}, {"code":"size","description":"large"}]
到目前為止,我的 Google Apps 腳本代碼如下所示:
function tableJSON(arr) {
var i, j, obj = {};
for (j = 0; j < arr[0].length; j++) {
obj[arr[0][j]] = {};
}
for (i = 0; i < arr.length; i++) {
for (j = 0; j < arr[0].length; j++) {
obj[arr[0][j]] = arr[i][j];
}
}
return JSON.stringify(obj);
}
當我輸入時的結果
="[" & tableJSON(A1:B4) & "]"是:
[{"code":"size","description":"large"}]
我確信解決方案很簡單,但我一直無法弄清楚。
該代碼僅創建 1 個對象並在每次迭代中重寫相同的對象。
/*<ignore>*/console.config({maximize:true,timeStamps:false,autoScroll:false});/*</ignore>*/ /** * @param{Array<Array>} arr 2D array * @customfunction * @OnlyCurrentDoc */ function tableJSONFixed(arr) { 'use strict'; const [code, desc] = arr.shift(); return JSON.stringify(arr.map(([v1, v2]) => ({ [code]: v1, [desc]: v2 }))); } console.info( tableJSONFixed([ ['code', 'description'], ['brand', 'google'], ['size', 'large'], ['color', 'green'], ]) );
<!-- https://meta.stackoverflow.com/a/375985/ --> <script src="https://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
https://github.com/jsoma/tabletop
我正在使用桌面將工作表轉換為 JSON,但如果您有一個組織的 google 帳戶,這將不會工作太久
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.