构建Json对象然后将结果与HTML表数据相关联

时间:2011-01-12 17:07:23

标签: java jquery html json html-table

我传出一个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对象作为String返回。然后,我想根据这些结果动态构建一个表。

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

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

然后我想在特定的div元素中创建一个表,一旦这些结果在没有页面刷新等的情况下即时返回到我的浏览器。

所以我希望表标题包含每列的标题 - 然后你猜对了2行。

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您的JSON可以很好地构建表格。

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

答案 1 :(得分:1)

您可以使用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']。

当然,建议给键有意义的名称以避免混淆,如我的例子所示:)