【问题标题】:JSON to Data Table MappingJSON 到数据表的映射
【发布时间】:2015-02-19 05:11:42
【问题描述】:

我有以下格式的 JSON 数据

{
  "RegX": {
    "LayerA": {
      "name": "abcd123",
      "url": "htt:cd1234"
    },
    "LayerB": {
      "name": "xyz234",
      "url": "ht:bcd12"
    }
  },
  "RegY": {
    "Layer1": {
      "name": "xyz123",
      "url": "ht/abc1234"
    },
    "Layer2": {
      "name": "xy234",
      "url": "http://abc12"
    }
  }
}

我想以以下格式在数据表中显示它。

表名 - 正则

     NAME                URL
LAYERA  abcd123        httd1234
LAYERB  xyz234         http:cd12

表名 - REGY

    NAME                URL
LAYER1  xyz123        http:d1234
LAYER2  xyz234         h/abcd12

有没有一种方法可以在两个不同的表中显示单个 JSON 文件并从 JSON 表中显示正确的行名和列名?我打算使用数据表,但找不到合适的实现来使用

【问题讨论】:

  • 是的!有什么问题?
  • 此问题要求人们推荐或查找书籍、工具、软件库、教程或其他场外资源 - 这与 Stack Overflow 无关。
  • 我的问题是如何使用 datatable 从同一个 JSON 创建两个不同的表?

标签: javascript jquery json datatable


【解决方案1】:

var myData = {
  "RegX": {
    "LayerA": {
      "name": "abcd123",
      "url": "htt:cd1234"
    },
    "LayerB": {
      "name": "xyz234",
      "url": "ht:bcd12"
    }
  },
  "RegY": {
    "Layer1": {
      "name": "xyz123",
      "url": "ht/abc1234"
    },
    "Layer2": {
      "name": "xy234",
      "url": "http://abc12"
    }
  }
};

var tables = Object.keys(myData);

for(var i=0; i<tables.length; i++){
  var rows = Object.keys(myData[tables[i]]);
  var tbl = document.createElement('table');
  document.getElementsByTagName('body')[0].appendChild(tbl);
  var thead = tbl.appendChild(document.createElement('thead'));
  thead.innerHTML = ("<tr><td>name</td><td>url</td></tr>");
  var tbdy = document.createElement('tbody');
  tbl.appendChild(tbdy);
  for(var j=0; j<rows.length; j++){
    var cols = Object.keys(myData[tables[i]][rows[j]]);
    var innerHTML = '';
    var tr = tbdy.insertRow(j);
    for(var k=0; k<cols.length; k++){
      innerHTML += "<td>"+myData[tables[i]][rows[j]][cols[k]]+"</td>";
    }
    tr.innerHTML = innerHTML;
  }
  
}
table, tr , td {
  border-collapse: collapse;
  border: 1px solid grey;
}

table {
  margin: 5px;
}
尝试理解代码并添加更多内容以满足您的需求。 希望你明白了,如果不问我。

【讨论】:

  • 谢谢 Sai ..我希望使用数据表来实现,但这真的很有帮助
猜你喜欢
  • 2019-04-07
  • 1970-01-01
  • 2020-07-16
  • 2011-08-05
  • 2022-01-10
  • 2017-05-02
  • 1970-01-01
  • 2015-08-01
  • 2023-03-25
相关资源
最近更新 更多