json 使用Quandl API中的数据显示在Appsmith表小部件中

t3irkdon  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(113)

我正在构建一个Web应用程序,希望通过其JSON API连接Quandl中的数据。但是,我从Quandl中获得的JSON将列名与数据本身分开,请检查以下内容:

{
  "datatable": {
    "data": [
      [
        "AAPL",
        "MRY",
        "2020-12-31",
        "2020-09-26",
        "2020-09-26",
        "2021-07-28",
        -406000000,
        323888000000,
        325562500000
]
],

  ]
    ],
    "columns": [
      {
        "name": "ticker",
        "type": "String"
      },
      {
        "name": "dimension",
        "type": "String"
      },
      {
        "name": "calendardate",
        "type": "Date"
      },
      {
        "name": "datekey",
        "type": "Date"
      },
      {
        "name": "reportperiod",
        "type": "Date"
      },
      {
        "name": "lastupdated",
        "type": "Date"
      },
      {
        "name": "accoci",
        "type": "Integer"
      },
      {
        "name": "assets",
        "type": "Integer"
      },
      {
        "name": "assetsavg",
        "type": "Integer"
      }
]
  },
  "meta": {
    "next_cursor_id": null
  }
}

当我在Appsmith中使用此数据时,它无法推断列名。有没有简单的javascript代码将列名与数据结合起来?谢谢!

t0ybt7op

t0ybt7op1#

这是可能的一个简单的JS片段,现在我写的代码不是很好,但将在这种情况下工作(可以优化)

{{ 
  function() {
      let tableData = [];
      _.map(_d.datatable.data, (v, i) => {
        let set = {}
        _.map(v, (x, k) => {
          var obj = {[_d.datatable.columns[k].name]: x}
          set = {...set, ...obj}
        })
        tableData.push(set)
      })
   }()
}}

在上面的代码片段中,_d是您接收到的数据,我们将数组值索引与给定的列索引进行Map,并从中创建一个新对象,另外,由于这是一个多行JS代码,在Appsmith中,我们需要将其写入IIFE中,如上文所示。

相关问题