将 json 数据转换为 HTML 表格

2023-12-15

我在 php 中有一个数据数组,我需要在 HTML 表中显示这些数据。以下是示例数据集的样子。

Array(
  Array
  (
     [comparisonFeatureId] => 1182
     [comparisonFeatureType] => Category
     [comparisonValues] => Array
                 (
                 [0] => Not Available
                 [1] => Standard
                 [2] => Not Available
                 [3] => Not Available
                 )
    [featureDescription] => Rear Seat Heat Ducts
),)

数据集是 3 个项目的比较(显示在数组的 ComparisonValues 索引中)

最后我需要该行看起来与此类似

<tr class="alt2 section_1"> 
   <td><strong>$record['featureDescription']</strong></td> 
   <td>$record['comparisonValues'][0]</td> 
   <td>$record['comparisonValues'][1]</td> 
   <td>$record['comparisonValues'][2]</td> 
   <td>$record['comparisonValues'][3]</td> 
</tr>   

我遇到的问题是如何最好地做到这一点。我是否应该在服务器端创建整个表 HTML,通过 ajax 调用将其传递,然后将预渲染的 HTML 数据转储到 div 中,或者传递 json 数据并渲染表客户端。

有什么优雅的建议吗?


那要看。有几个因素需要考虑:

  1. 您希望在网络服务器上浪费多少 CPU 和网络带宽?生成和发送 HTML 不仅仅只是发送一个紧凑的 JSON 字符串。

  2. 您希望在网络浏览器上浪费多少 CPU 和内存?在 HTML DOM 树中生成表格不仅仅是插入一个已生成的字符串,如下所示innerHTML.

  3. 您希望 Web 服务的可重用性如何?返回“静态”HTML 并不对每个人都有用。更灵活的格式(例如 XML 或 JSON)更有用(也对将来的您自己)。

到目前为止,我建议返回 JSON 并使用 JS/jQuery 在客户端填充它。


Update:假设 JSON 数据将以这种格式到达

var json = {"features": [{
    "comparisonFeatureId": 1182,
    "comparisonFeatureType": "Category",
    "comparisonValues": [ "Not Available", "Standard", "Not Available", "Not Available" ],
    "featureDescription": "Rear Seat Heat Ducts"
}, {
    "comparisonFeatureId": 1183,
    "comparisonFeatureType": "Category",
    "comparisonValues": [ "Not Available", "Standard", "Not Available", "Not Available" ],
    "featureDescription": "Some Description"
}]};

你有一张像这样的空桌子

<table id="table"></table>

那么您可以使用以下 jQuery 脚本按照您在问题中描述的方式填充它

$.each(json.features, function(i, feature) {
    var row = $('<tr class="alt2 section_1">').appendTo($('#table'));
    row.append($('<td>').append($('<strong>').text(feature.featureDescription)));
    $.each(feature.comparisonValues, function(j, comparisonValue) {
        row.append($('<td>').text(comparisonValue));
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 json 数据转换为 HTML 表格 的相关文章

随机推荐

  • 使用 SED 删除重复字符而不进行反向引用

    假设我们有一个文件包含 HHEELLOO HHYYPPOOTTHHEESSIISS 我们要删除重复的字符 据我所知 我们可以这样做 s A Z 1 1 g 这是一个家庭作业 教授说他希望我们在没有反向引用或扩展正则表达式的情况下尝试这些练习
  • 在 QTextEdit 中的字符串后插入 QImage

    我正在尝试将文本打印到 QTextEdit 字段中 但由于某种原因 图像首先显示 这是我的代码 import sys from PyQt4 import QtCore QtGui from PyQt4 QtCore import from
  • 如何查找任何 Android 应用程序的用户花费时间

    您好 我正在开发一个应用程序 我需要查找用户在 Facebook 等特定应用程序上花费的时间 每当用户花费 x 分钟时 我想给用户一些奖励 Android 有什么好的方法可以实现这一点吗 正如问题中所指出的检测其他应用程序何时打开或启动 您
  • Rails 3 后台作业管理器

    有谁知道与 Rails 3 一起使用的后台作业管理器吗 我听说过 Starling 和 Workling 但我没有看到 Rails 3 的分支 I used 本文让delayed job 一个common Rails 2 gem 用于对稍后
  • 方差分析 (rstatix) 中“mutate()”输入“数据”的问题

    这真让我抓狂 我在用anova test from rstatix它告诉我 我的专栏不在那里 而它们显然在那里 这就是我的数据框的样子 ID c 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 Form c A A
  • “导入keras”和“导入tensorflow.keras”有什么区别

    我想知道 使用从tensorflow导入keras有什么区别import tensorflow keras或者只是 pip 单独安装 keras 并使用导入它import keras因为到目前为止两者似乎都工作得很好 我注意到的唯一区别是我
  • 访问 H2 数据库架构

    我目前正在使用 java 访问嵌入式 H2 数据库jOOQ生成表类等 我当前可以执行诸如 create select from TEST fetch 在我的代码中 返回结果等 但是我无法查询信息模式 我可以使用 H2 控制台访问它 并且为给
  • 在 firebase 上构建数据的最佳方式是什么?

    我是 firebase 的新手 我想知道构建数据的最佳方式是什么 我有一个简单的例子 我的项目有申请人和应用程序 1个申请人可以有多个申请 我如何在 firebase 上关联这两个对象 它像关系数据库一样工作吗 或者在数据设计方面需要完全不
  • 如何将外部样式表链接到多个页面和文件夹?

    我正在构建一个相当大的网站 其中有很多页面和文件夹 我有 1 个样式表 如何将样式表添加到这些文件夹的 全部 在我开始将页面放入单独的文件夹中之前 我没有遇到此问题 现在每个页面都有自己的文件夹 它不再读取我的样式表 除非它位于同一文件夹中
  • Delphi XE2 的 FastString 替代品

    当我问这个问题不久前 FastString 单元来解决我的问题 现在我开始将我的软件从 D7 迁移到 XE2 我的问题是 既然 FastString 似乎不再能解决问题 我现在有什么替代方案 或者 更乐观的是 Delphi 本身是否解决了这
  • Git 和多个存储库

    我正在使用 github 来存储我的 PowerShell 配置文件 我发现posh vcs我想在我的实际实现之上使用它 我希望能够合并来自posh vcs到我现在的环境 处理这个问题的最佳方法是什么 我的文件只有一个存储库 而另一个文件夹
  • 使用泛型时无法解析方法

    我正在尝试为我的项目实现一棵树 该树将包含经过一些移动后处于不同棋盘状态的节点 现在我的项目结构如下 src Agent Support Test Threes Tree java Some class java some class Bo
  • 修复 Sublime Text 2 行结尾?

    这是我的Settings User config auto indent true color scheme Packages Color Scheme Default Twilight tmTheme default line endin
  • MyFaces Facelet 包含中的 NullPointerException

    我正在尝试从以下位置迁移简单的 JSF2 2 原型Mojarra2 2 5 工作正常 MyFaces2 2 3 但是空指针异常 occurs 我通常使用 Mojarra 做的是包含 注入 以编程方式容器内的 JSF 页面 示例包含页面 包含
  • JOIN 比 WHERE 更快吗?

    假设我有两个链接的表 一个表有另一个表的外键 CREATE TABLE Document Id INT PRIMARY KEY Name VARCHAR 255 CREATE TABLE DocumentStats Id INT PRIMA
  • 可变高度的浮动元素将兄弟姐妹向下推

    我有 6 个元素 应该会产生两行 每行 3 个元素 所以我将它们浮动 但元素的内容变化很大 当一个较高的元素阻止后续同级元素一直向左浮动时 布局就会中断 这是 CSS 示例 figure width 30 float left margin
  • n 个皇后的快速启发式算法 (n > 1000)

    我写了两个程序 通过回溯算法将棋盘上的 n 个皇后放在一起 没有任何威胁 但这对于大 n 来说非常沉重 最后你可以运行 100 个皇后 通过爬山算法将棋盘上的 n 个皇后放在一起 没有任何威胁 这个算法比过去的解决方案更好 但是 300 个
  • Jasmine 测试在 VS2012 + Resharper + PhantomJS 中运行失败

    我尝试在 vs2012 的 resharper 7 中运行 jasmine 单元测试 但失败了 resharper phantomjs is running it in autogenerated url which maybe the c
  • 在 Linux 3.x 上挂钩 sys_execve()

    我正在尝试挂钩sys execve 通过修改系统调用表来实现Linux 3 x内核上的功能 问题是sys execve 仅当执行失败时才返回错误代码 使用我正在使用的包装函数 见下文 当sys execve 在有效的可执行文件上调用 它执行
  • 将 json 数据转换为 HTML 表格

    我在 php 中有一个数据数组 我需要在 HTML 表中显示这些数据 以下是示例数据集的样子 Array Array comparisonFeatureId gt 1182 comparisonFeatureType gt Category