簡體   English   中英

谷歌表鍵控 JSON

[英]Google sheet table to keyed JSON

我有一個 Google 工作表 ( https://docs.google.com/spreadsheets/d/1sUJkIcxm44idG8pe81IYU6nN9cWgCe_d7ofmYE0OwAo/edit#gid=0 ),其中包含我想從 javascript 腳本訪問的表中的數據。

我制作了一個可以訪問工作表並獲取數據的代碼筆: https://codepen.io/flennstrom/pen/powzJYb

const spreadsheetId = '1sUJkIcxm44idG8pe81IYU6nN9cWgCe_d7ofmYE0OwAo';
let json="";
fetch('https://docs.google.com/spreadsheets/d/'+spreadsheetId+'/gviz/tq?tqx=out:json&sheet=JSON')
    .then(res => res.text())
    .then(text => {
        json = JSON.parse(text.substr(47).slice(0, -2));
        console.log(json)
    })

但我想將 JSON 結構重新格式化為:

{
   "monosuit_regular": [
      {
         "size": "2XS",
         "LM": 169.85,
         "WM": 62.11,
         "order": 1
      },
      {
         "size": "XS",
         "LM": 173.92,
         "WM": 70.22,
         "order": 2
      },
      {
         "size": "S",
         "LM": 178,
         "WM": 78.32,
         "order": 3
      },
      {
         "size": "MEDIUM",
         "LM": 182.08,
         "WM": 86.43,
         "order": 4
      },
      {
         "size": "LARGE",
         "LM": 186.15,
         "WM": 94.54,
         "order": 5
      },
      {
         "size": "XL",
         "LM": 190.87,
         "WM": 103.29,
         "order": 6
      },
      {
         "size": "2XL",
         "LM": 194.59,
         "WM": 111.04,
         "order": 7
      },
      {
         "size": "3XL",
         "LM": 190.87,
         "WM": 112.16,
         "order": 8
      },
      {
         "size": "4XL",
         "LM": 190.87,
         "WM": 117,
         "order": 9
      }
   ],
   "monosuit_athletic": [
      {
         "size": "2XS",
         "LM": 170.77,
         "WM": 56.85,
         "order": 1
      },
      {
         "size": "XS",
         "LM": 174.85,
         "WM": 64.95,
         "order": 2
      },
      {
         "size": "S",
         "LM": 178.92,
         "WM": 73.06,
         "order": 3
      },
      {
         "size": "M",
         "LM": 183,
         "WM": 81.17,
         "order": 4
      },
      {
         "size": "L",
         "LM": 187.07,
         "WM": 89.28,
         "order": 5
      },
      {
         "size": "XL",
         "LM": 191.79,
         "WM": 98.03,
         "order": 6
      },
      {
         "size": "2XL",
         "LM": 196.51,
         "WM": 106.78,
         "order": 7
      }
   ]
}````
const spreadsheetId = '1sUJkIcxm44idG8pe81IYU6nN9cWgCe_d7ofmYE0OwAo';
fetch('https://docs.google.com/spreadsheets/d/'+spreadsheetId+'/gviz/tq?tqx=out:json&sheet=JSON&header=1')
  .then(res => res.text())
  .then(text => {
    const json = JSON.parse(text.substr(47).slice(0, -2));
    const cols = json.table.cols.slice(1).map(e => e.label);
    const rows = json.table.rows
    const o = {};
    for (const r of rows) {
      const k = r.c[0].v;
      if(!o[k]) { o[k] = []; }
      const v = r.c.slice(1).map((e, i) => { return {[cols[i]]:e.v}; });
      o[k].push(v);
    }
    console.log(o);
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM