json转html

json转html

const defaultColorMap = {
  key: 'red',
  string: 'green',
  number: 'darkorange',
  boolean: 'blue',
  null: 'magenta',
};
function syntaxHighlight(json, colorMap = defaultColorMap) {
  if (typeof json != 'string') {
    json = JSON.stringify(json, undefined, 2);
  }
  json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
  return json.replace(
    /("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,
    function (match) {
      let cls = 'number';
      if (/^"/.test(match)) {
        if (/:$/.test(match)) {
          cls = 'key';
        } else {
          cls = 'string';
        }
      } else if (/true|false/.test(match)) {
        cls = 'boolean';
      } else if (/null/.test(match)) {
        cls = 'null';
      }
      return `<span style="color: ${colorMap[cls]}">${match}</span>`;
    },
  );
}

用法

<pre
  dangerouslySetInnerHTML={{
    __html: syntaxHighlight(JSON.parse(text)),
  }}
/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Luckysheet是一款基于Web的在线电子表格工具,它可以将电子表格数据导出成JSON格式,然后通过JavaScript解析该JSON数据并将其渲染成HTML表格。以下是一个简单的例子: 假设我们有以下电子表格数据: | | A | B | C | |---|---|---|---| | 1 | 1 | 2 | 3 | | 2 | 4 | 5 | 6 | | 3 | 7 | 8 | 9 | 将其导出成JSON格式如下: ``` { "data": [ ["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"] ], "header": ["A", "B", "C"], "index": [1, 2, 3] } ``` 然后我们可以使用JavaScript将其解析并渲染成HTML表格: ```javascript const data = { "data": [ ["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"] ], "header": ["A", "B", "C"], "index": [1, 2, 3] }; const table = document.createElement('table'); const thead = document.createElement('thead'); const tbody = document.createElement('tbody'); // 渲染表头 const trHeader = document.createElement('tr'); data.header.forEach((headerText) => { const th = document.createElement('th'); th.innerText = headerText; trHeader.appendChild(th); }); thead.appendChild(trHeader); // 渲染表格数据 data.data.forEach((rowData, rowIndex) => { const tr = document.createElement('tr'); const indexTd = document.createElement('td'); indexTd.innerText = data.index[rowIndex]; tr.appendChild(indexTd); rowData.forEach((cellData) => { const td = document.createElement('td'); td.innerText = cellData; tr.appendChild(td); }); tbody.appendChild(tr); }); table.appendChild(thead); table.appendChild(tbody); document.body.appendChild(table); ``` 以上代码将生成一个HTML表格,其内容为: | | A | B | C | |---|---|---|---| | 1 | 1 | 2 | 3 | | 2 | 4 | 5 | 6 | | 3 | 7 | 8 | 9 | 希望这个例子对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值