首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gridjs:服务器,如何为一个简单的json数组映射数据

gridjs:服务器,如何为一个简单的json数组映射数据
EN

Stack Overflow用户
提问于 2022-02-26 12:52:47
回答 1查看 510关注 0票数 0

我是一个java脚本New蜜蜂,这就是为什么我很难映射一个简单的json数组,如果它是来自服务器的响应。我已经用静态的json测试过它,它的工作原理与预期一样:

代码语言:javascript
复制
    new gridjs.Grid({
        columns: [{
             id: 'dateTime',
             name: 'Timestamp'
          }, {
             id: 'host',
             name: 'Host'
          }, {
             id: 'ipv4',
             name: 'IPv4'
          }, {
             id: 'ipv6',
             name: 'IPv6'
          }],
          data: [
              {"dateTime": "2021-12-02 03:11:30.501","host": "master.myhost.com","ipv4": "93.215.66.14", "ipv6": "2003:cc:2fff:9e4:2e91:abff:febf:d839"}, 
              {"dateTime": "2021-12-02 03:44:29.494", "host": "test.myhost.com", "ipv4": "93.203.250.190", "ipv6": "n/a"}, 
          ]
        }).render(document.getElementById("wrapper"));

但是,如果同一个json数组是由服务器交付的,我不知道如何定义数据映射。我就是这么做的:

代码语言:javascript
复制
    new gridjs.Grid({
        columns: [{
             id: 'dateTime',
             name: 'Timestamp'
          }, {
             id: 'host',
             name: 'Host'
          }, {
             id: 'ipv4',
             name: 'IPv4'
          }, {
             id: 'ipv6',
             name: 'IPv6'
          }],
          server: {
              url: "http://localhost:8080/info/zone-log",
              then: data => data.map([data.dateTime, data.host, data.ipv4, data.ipv6]) 
          }
        }).render(document.getElementById("wrapper"));

我在JS控制台上得到了以下错误:'Grid.js: TypeError:.不是函数‘。

有人能解释一下,如何正确地进行数据映射吗?

编辑

服务器响应:

代码语言:javascript
复制
curl -i http://localhost:8080/info/zone-log
HTTP/1.1 200 OK
Date: Tue, 01 Mar 2022 08:53:39 GMT
Content-Type: application/json
Transfer-Encoding: chunked

[{"dateTime":"2021-12-02 03:11:30.501","host":"master.myhost.com","ipv4":"93.215.66.14","ipv6":"2003:cc:2fff:9e4:2e91:abff:febf:d839"},{"dateTime":"2021-12-02 03:44:29.494","host":"ursa.myhost.com","ipv4":"93.203.250.190","ipv6":"n/a"}, ...}

java-脚本控制台日志:

代码语言:javascript
复制
data 
Array(191) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]
[0…99]
​​0: Object { dateTime: "2021-12-02 03:11:30.501", host: "master.myhost.com", ipv4: "93.215.66.14", … }
​​1: Object { dateTime: "2021-12-02 03:44:29.494", host: "ursa.myhost.com", ipv4: "93.203.250.190", … }

[Grid.js] [ERROR]: TypeError: [...] is not a function   log.ts:12:21
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 03:08:48

看起来,您正在获取的数据不是数组。因此,data.map()给出了类型错误。你能不能用控制台记录一下数据,看看接下来会发生什么?

代码语言:javascript
复制
new gridjs.Grid({
    columns: [{
         id: 'dateTime',
         name: 'Timestamp'
      }, {
         id: 'host',
         name: 'Host'
      }, {
         id: 'ipv4',
         name: 'IPv4'
      }, {
         id: 'ipv6',
         name: 'IPv6'
      }],
      server: {
          url: "http://localhost:8080/info/zone-log",
          then: data => {
                  console.log("data", data);
                  return data.map([data.dateTime, data.host, data.ipv4, data.ipv6]) 
                }
      }
    }).render(document.getElementById("wrapper"));

所需的数组很可能在数据中的另一个对象中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71276827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档