将来自 json 的传入数据转换为二维数组

Posted

技术标签:

【中文标题】将来自 json 的传入数据转换为二维数组【英文标题】:Convert incoming data from json into 2d array 【发布时间】:2020-12-01 09:38:54 【问题描述】:

我有一个从谷歌表格中提取的 JSON 文件。它按行读取我的数据。上图显示了google sheet 到目前为止,我已经能够将其放入一维数组中,但我无法将其排序为二维数组。

[ '星期日','星期一','星期二', '星期三','星期四','星期五', '星期六', '星期日活动 1', '星期一活动 1', '星期二活动 1'、'星期三活动 1'、'星期四活动 1'、 '星期五活动 1'、'星期六活动 1'、'星期日活动 2'、 '周一活动 2'、'周二活动 2'、'周三活动 2'、 '事件 2', '星期五事件 2', '星期六事件 2', '周日活动 3'、'周一活动 3'、'周二活动 3'、 '星期三事件 3', '事件 3', '星期五事件 3', '周六活动 3'、'周日活动 4'、'周一活动 4'、 '星期二活动 4', '星期三活动 4', '活动 4', '星期五活动 4'、'星期六活动 4'、'星期一活动 5'、 '星期二事件 5', '星期三事件 5', '事件 5', '星期五活动 5'、'星期六活动 5'、'星期一活动 6'、 '星期二事件 6', '星期三事件 6', '事件 6', '星期五活动 6'、'星期六活动 6'、'星期一活动 7'、 '星期二活动 7'、'星期三活动 7'、'星期五活动 7'、 '星期六活动 7'、'星期一活动 8'、'星期三活动 8'、 '星期五活动 8'、'星期六活动 8'、'星期一活动 9'、 '星期三事件 9'、'星期五事件 9'、'星期六事件 9'、 '星期一事件 10'、'星期三事件 10'、'星期五事件 10'、 '星期六活动 10'、'星期一活动 11'、'星期五活动 11'、 '星期六活动 11'、'星期一活动 12'、'星期五活动 12'、 '星期六活动 12'、'星期一活动 13'、'星期五活动 13'、 '星期六活动 13', '星期一活动 14', '星期六活动 14', '周一活动 15'、'周六活动 15'、'周六活动 16'、 '星期六活动 17'、'星期六活动 18'、'星期六活动 19'、 '星期六活动 20'、'星期六活动 21' ]

所以基本上我想要一个二维数组来包含数据 [[sunday][sundayevent1]] [[sunday][sundayevent2]... [[saturday][saturdayevent20]][[saturday][saturdayevent21]

这是我如何导入一维数组...

var day = []
function getEvent() 
  fetch(url, settings)
      .then(res => res.json())
      .then((json) => 
        for (var i = 0; i < json.feed.entry.length; i++) 
          day[i] = json.feed.entry[i].gs$cell.inputValue
        
        console.log(day)
  )

json.feed.entry[i].gs$cell.inputValue 是每个单独单元格的每个值 就像我说的那样,如果我问的是一个愚蠢的问题,它会读到右边的左上角单元格,但无论出于何种原因,我现在无法自己得到答案,所以我想我会尝试堆栈溢出.. .

var day = [[],[]]
for (var i = 0; i < json.feed.entry.length; i++) 
          var mydata = json.feed.entry[i].gs$cell.inputValue
          var row = json.feed.entry[i].gs$cell.row
          var col = jston.feed.entry[i].gs$cell.col
          day[row][col] = mydata
        

我也试过了,即使我有表格中的行和列,它仍然无法生成正确的 2 数组

【问题讨论】:

这个实现是... javascript?请将其添加为标签。 omg 是的,对不起,我完全忘记添加了,谢谢指出! 我绝对不明白你期望的输出:) 我想要一个二维数组,其中元素 0 中的所有星期日事件所有元素 1 中的所有星期一事件,所以 day[0][0] 将是星期日的第一个事件 我必须为我糟糕的英语水平道歉。不幸的是,对于so basically i want a 2d array to have the data [[sunday][sundayevent1]] [[sunday][sundayevent2]... [[saturday][saturdayevent20]][[saturday][saturdayevent21]I want a 2d array with all Sunday events in element 0 all Monday events in element 1 so day[0][0] would be the first event on Sunday,我无法理解您期望的结果。可以问一下具体情况吗? 【参考方案1】:
function getEvent() 
  fetch(url, settings)
      .then(res => res.json())
      .then((json) => 

        for (var i = 7; i < json.feed.entry.length; i++) 
           col = json.feed.entry[i].gs$cell.col
          day[i-7] = [];
          if(col == 1)
          
            day[i-7][0] = "Sunday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
           else if(col == 2)
          
            day[i-7][0] = "Monday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
            else if(col == 3)
          
            day[i-7][0] = "Tuesday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
           else if(col == 4)
          
            day[i-7][0] = "Wednesday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
           else if(col == 5)
          
            day[i-7][0] = "Thursday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
           else if(col == 6)
          
            day[i-7][0] = "Friday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
           else if(col == 7)
          
            day[i-7][0] = "Saturday"
            day[i-7][1] = json.feed.entry[i].gs$cell.inputValue
          
        
        console.log(day);
  )

产生结果

[
  [ 'Sunday', 'Sunday Event 1' ],
  [ 'Monday', 'Monday event 1' ],
  [ 'Tuesday', 'Tuesday event 1' ],
  [ 'Wednesday', 'Wedneday event 1' ],
  [ 'Thursday', 'Thursday event 1' ],
  [ 'Friday', 'Friday event 1' ],
  [ 'Saturday', 'Saturday event 1' ],
  [ 'Sunday', 'Sunday Event 2' ],
  [ 'Monday', 'Monday event 2' ],
  [ 'Tuesday', 'Tuesday event 2' ],
  [ 'Wednesday', 'Wedneday event 2' ],
  [ 'Thursday', 'event 2' ],
  [ 'Friday', 'Friday event 2' ],
  [ 'Saturday', 'Saturday event 2' ],
  [ 'Sunday', 'Sunday Event 3' ],
  [ 'Monday', 'Monday event 3' ],
  [ 'Tuesday', 'Tuesday event 3' ],
  [ 'Wednesday', 'Wedneday event 3' ],
  [ 'Thursday', 'event 3' ],
  [ 'Friday', 'Friday event 3' ],
  [ 'Saturday', 'Saturday event 3' ],
  [ 'Sunday', 'Sunday Event 4' ],
  [ 'Monday', 'Monday event 4' ],
  [ 'Tuesday', 'Tuesday event 4' ],
  [ 'Wednesday', 'Wedneday event 4' ],
  [ 'Thursday', 'event 4' ],
  [ 'Friday', 'Friday event 4' ],
  [ 'Saturday', 'Saturday event 4' ],
  [ 'Monday', 'Monday event 5' ],
  [ 'Tuesday', 'Tuesday event 5' ],
  [ 'Wednesday', 'Wedneday event 5' ],
  [ 'Thursday', 'event 5' ],
  [ 'Friday', 'Friday event 5' ],
  [ 'Saturday', 'Saturday event 5' ],
  [ 'Monday', 'Monday event 6' ],
  [ 'Tuesday', 'Tuesday event 6' ],
  [ 'Wednesday', 'Wedneday event 6' ],
  [ 'Thursday', 'event 6' ],
  [ 'Friday', 'Friday event 6' ],
  [ 'Saturday', 'Saturday event 6' ],
  [ 'Monday', 'Monday event 7' ],
  [ 'Tuesday', 'Tuesday event 7' ],
  [ 'Wednesday', 'Wedneday event 7' ],
  [ 'Friday', 'Friday event 7' ],
  [ 'Saturday', 'Saturday event 7' ],
  [ 'Monday', 'Monday event 8' ],
  [ 'Wednesday', 'Wedneday event 8' ],
  [ 'Friday', 'Friday event 8' ],
  [ 'Saturday', 'Saturday event 8' ],
  [ 'Monday', 'Monday event 9' ],
  [ 'Wednesday', 'Wedneday event 9' ],
  [ 'Friday', 'Friday event 9' ],
  [ 'Saturday', 'Saturday event 9' ],
  [ 'Monday', 'Monday event 10' ],
  [ 'Wednesday', 'Wedneday event 10' ],
  [ 'Friday', 'Friday event 10' ],
  [ 'Saturday', 'Saturday event 10' ],
  [ 'Monday', 'Monday event 11' ],
  [ 'Friday', 'Friday event 11' ],
  [ 'Saturday', 'Saturday event 11' ],
  [ 'Monday', 'Monday event 12' ],
  [ 'Friday', 'Friday event 12' ],
  [ 'Saturday', 'Saturday event 12' ],
  [ 'Monday', 'Monday event 13' ],
  [ 'Friday', 'Friday event 13' ],
  [ 'Saturday', 'Saturday event 13' ],
  [ 'Monday', 'Monday event 14' ],
  [ 'Saturday', 'Saturday event 14' ],
  [ 'Monday', 'Monday event 15' ],
  [ 'Saturday', 'Saturday event 15' ],
  [ 'Saturday', 'Saturday event 16' ],
  [ 'Saturday', 'Saturday event 17' ],
  [ 'Saturday', 'Saturday event 18' ],
  [ 'Saturday', 'Saturday event 19' ],
  [ 'Saturday', 'Saturday event 20' ],
  [ 'Saturday', 'Saturday event 21' ]

【讨论】:

以上是关于将来自 json 的传入数据转换为二维数组的主要内容,如果未能解决你的问题,请参考以下文章

JS中JSON.stringify()方法,将js对象转换成字符串,传入服务器

将 JSON 二维数组转换为 AS3 数组

如何将 c# 二维数组转换为 JSON 对象?

swift:将传入的 json 数组转换为字典和对象

流分析 - 将传入的 JSON 转换为 PowerBI 流数据集

在 Laravel 中将二维数组转换为 json 对象