【问题标题】:Build Json Object then relate the results to HTML table data构建 Json 对象,然后将结果与 HTML 表数据相关联
【发布时间】:2011-06-07 23:38:04
【问题描述】:

我传递了一个 ajax get,其中包含一个参数,即添加到 db 的日期。

Java 查询数据库以获取在此日期添加的人员的结果,并为我构建一个 JSON 对象,如下所示:

{
  "resultdata" : { "rowsReturned" : "2", "fetchTime" : "180"}
  "row_1" : { "name" : "Larry", "sex" : "m", "age" : "26", "location" : "seattle" }
  "row_2" : { "name" : "Pedro", "sex" : "m", "age" : "22", "location" : "unknown" }
}

然后我可以将 JSON 对象作为字符串返回。然后我想根据这些结果动态构建一个表。

首先,JSON 对象是否适合建表?

结果数据告诉我有多少行和花费的时间(以毫秒为单位),然后是该特定格式的行数。

然后我想在这些结果即时返回到我的浏览器后在特定的 div 元素中创建一个表格,而无需刷新页面等。

所以我希望表格标题带有每列的标题 - 然后你猜到了 2 行。

最好的方法是如何做到这一点。我熟悉 jQuery,JSON 对我来说是全新的,在 jQuery 中处理 JSON 是我热衷于学习的东西。

非常感谢任何帮助。

【问题讨论】:

    标签: java jquery html json html-table


    【解决方案1】:

    您的 JSON 看起来很适合构建表格。

    您需要使用 $.getJSON() 来获取 JSON 数据,因为它会自动将 JSON 解析为您的对象。如果您需要 $.ajax() 的高级功能,您可以在 AJAX 调用返回的数据上调用 $.parseJSON(),它会将 JSON 解析为一个对象。

    【讨论】:

      【解决方案2】:

      您可以使用jsonlint 来验证您的json。 你的无效。它缺少一些',':

      {
          "resultdata" : {
              "rowsReturned" : "2",
              "fetchTime" : "180" 
          }, // <--
          "row_1" : {
              "name" : "Larry",
              "sex" : "m",
              "age" : "26",
              "location" : "seattle" 
          }, // <--
          "row_2" : {
              "name" : "Pedro",
              "sex" : "m",
              "age" : "22",
              "location" : "unknown" 
          }
      }
      

      我已经做了一点DEMO 的一种可能的方法,即如何使用 for-in-loops 循环遍历 json


      for (key in json) { 
      

      遍历 json 并将每个键存储在 'key' 变量中。 在你的情况下'resultdata','row_1','row_2'。
      因此,要访问每个键的数据,您可以编写 json[key],例如转换为 json['row_1']。
      现在你对 row_1 对象做同样的事情:

      for(key1 in json[key])
      

      key1 现在是 row_1 对象中的键:'name','sex',...

      现在要访问数据,您将编写 json[key][key1] ,例如 json['row_1']['name']。

      当然,建议给键起有意义的名称,以避免像我的示例中那样混淆:)

      【讨论】:

      • 感谢您投入的时间,这正是我正在寻找的。但是,如果您有时间,您能否向我解释一下 json[key][key1].. 密钥如何从您解析的 json 对象中检索数据。
      • 感谢您的回复!完美的。现在得到它,我似乎很愚蠢,我一直在猜测我正在经历那些日子。
      • 还有一个问题说如果我在数组中有几个键,但我想以特定顺序将它们输出到表中,这可能不是它们在 json 对象中的顺序。我该怎么做呢?
      • 那么你不需要第二个循环。你可以直接使用 json[key]['name'], json[key]['age']...
      猜你喜欢
      • 1970-01-01
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      相关资源
      最近更新 更多