【问题标题】:Convert json array to object - Javascript将 json 数组转换为对象 - Javascript
【发布时间】:2021-04-23 17:28:31
【问题描述】:

我要做的是显示我从 API 获得的数据(使用 NodeJs)并使用 material-table 库使用 React Js 将其显示在表中。我的问题是使我从 API 获得的数据与表理解的 json 格式兼容时。我认为问题是因为表格理解的格式是数组,但我仍然不明白如何做到这一点。

在这种 JSON 格式中,它不会在表格中显示任何数据:

{
  "data": {
    "username01": {
      "name": "john",
      "adress": "street sun, 124",
      "status": "ok"
    },
    "username02": {
      "name": "joseph",
      "adress": "street abc, 124",
      "status": "ok"
    }
  }
}

我测试的JSON格式正常显示在表格中:

{
  "data": [
    {
      "name": "john",
       "adress": "street sun, 124",
       "status": "ok"
    },
    {
       "name": "john",
       "adress": "street sun, 124",
       "status": "ok"
    }
  ]
}

ReactJs 前端:

const columns = [
  { title: 'Name', field: 'name' },
  { title: 'Adress', field: 'adress' },
  { title: 'Status', field: 'status' }
];


const getdata = async () => {
await api.post("/data")
  .then(response => {
    setData(response.data.data);
  }).catch(error => {
    console.log(error);
  })
 }


<MaterialTable
     columns={columns}
     data={data}
     title="Lista de entregadores"
            
     options={{
         actionsColumnIndex: -1,
         exportButton: true
     }}
 />

【问题讨论】:

  • 你可以做data.data = Object.values(data.data)

标签: javascript node.js json reactjs


【解决方案1】:

试试这个:

 setData(Object.values(response.data.data));

或在组件中:

 <MaterialTable
     columns={columns}
     data={Object.values(data)}
     title="Lista de entregadores"
            
     options={{
         actionsColumnIndex: -1,
         exportButton: true
     }}
 />

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 2020-02-06
    • 2021-03-20
    • 2013-01-09
    • 2020-09-11
    相关资源
    最近更新 更多