【问题标题】:How to Convert JSON to Array following structure below如何将 JSON 转换为以下结构的数组
【发布时间】:2020-01-06 06:27:20
【问题描述】:

我从firebase realtime 数据库数据中获取数据并传递数据谷歌电子表格。我在 json 对象中挣扎数据映射。

任何人都可以帮我解决这个请求。

我的firebase实时数据库结构:https://XXXXX.firebaseio.com/users.json

{
"4rjF1iwudEXEevtzEoGwDrEtEpI3":
   {
     "agg1":true,
     "agg2":true,
     "category":"Solo"
   },

"8I71pW0JXqflBQf5YMBdJ0kv8F13":
   {
     "agg1":true,
     "agg2":true,
     "category":"Trio"
   }
}

我试过这张地图。

var itemArray = [];
  var valueArray = [];
  Object.keys(data).forEach((key, index) => {
    itemArray.push(key);
    itemArray.push(data[key]);
    valueArray[index] = itemArray;
    itemArray = [];
  });

【问题讨论】:

  • 你想得到什么样的结构?
  • 添加您的 input/users.json 数据。
  • 据我了解,您只需要像这样的数组中的值:- [ [ { "agg1": true, "agg2": true, "category": "Solo" } ], [ { " agg1": true, "agg2": true, "category": "Trio" } ] ],只需删除 itemArray.push(key)。
  • 您需要提供有关您要达到的目标的更多信息。理想情况下,在上面的代码中包含您期望/想要的输出示例。

标签: javascript json firebase firebase-realtime-database


【解决方案1】:

使用Object.values(data)Object.keys(data)。像这样

var itemArray = [];
  var valueArray = [];
  Object.values(data).forEach((value, index) => {
    itemArray.push(value);
  });

您的代码也应该可以工作,但您添加了不敬的行,像这样将其删除。

var itemArray = [];
  var valueArray = [];
  Object.keys(data).forEach((key, index) => {
    itemArray.push(data[key]);
  });

【讨论】:

  • 为什么不赞成我的回答?告诉我问题
  • Object.values(data) 已经返回了一个值数组,为什么要循环遍历并将每个值推入一个新数组?
  • 是的,你是对的,但问题并不清楚,所以我认为这就是他想要做的。
猜你喜欢
  • 2016-07-14
  • 2022-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 2013-05-15
相关资源
最近更新 更多