Javascript 从JSON数据创建html表

Javascript 从JSON数据创建html表,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个html文件,其中有这个代码段 <div> <table id="apps"></table> </div> 只有一个“1”,但是“1”列表中可以有多个词典。在本例中,列表中只有一个{},[],但可以存在多个{},其中正好包含五个项目,如上图所示 我想从这些数据创建一个表,其中每一行表示[]中的一个{},并有五列分别表示a、B、C、D、E 我不确定我是否应该拥有这个结构,标记已经存在于我的html中(这不在我提供的html代码中)

我有一个html文件,其中有这个代码段

<div>
    <table id="apps"></table>
</div>
只有一个
“1”
,但是
“1”
列表中可以有多个词典。在本例中,列表中只有一个
{}
[]
,但可以存在多个
{}
,其中正好包含五个项目,如上图所示

我想从这些数据创建一个表,其中每一行表示
[]
中的一个
{}
,并有五列分别表示a、B、C、D、E


我不确定我是否应该拥有这个结构,标记已经存在于我的html中(这不在我提供的html代码中),然后填充这些标记,或者我的函数是否应该在我的html文件中加载这些数据,访问table id=“apps”并创建这些标记,然后填充这些标记?哪个更好?如何才能有效地实现这一点

我不知道您对该项目的要求,但我会跳过所有这些麻烦,使用类似的库。有许多方法可以从或其他填充表。即使您无法修补表数据源以符合其标准,也需要重新格式化。

不知道您对该项目的要求,但我会跳过所有这些麻烦,使用类似的库。有许多方法可以从或其他填充表。即使您无法修补表数据源以符合其标准,也需要重新格式化。

您的问题是“哪一个更好:将表行和单元格标记已经包含在标记中,还是在获取数据时构建它们?”

我认为更好的选择是在获取对象时构建数据

在psedoocode中:

for each object in 1
  make new row <tr></tr>

  for each data in object
    make new cell <td></td>
    insert data into <td>[here]</td>
    insert cell into <tr>[here]</tr>

  insert filled row into "apps" by using it's ID
done
用于1中的每个对象
吵架
对于对象中的每个数据
制造新电池
将数据插入[此处]
将单元格插入[此处]
使用填充行的ID将其插入“应用程序”中
完成
这是否足以满足您想要了解的内容?

您的问题是“哪一个更好:将表行和单元格标记已经包含在标记中,还是在获取数据时构建它们?”

我认为更好的选择是在获取对象时构建数据

在psedoocode中:

for each object in 1
  make new row <tr></tr>

  for each data in object
    make new cell <td></td>
    insert data into <td>[here]</td>
    insert cell into <tr>[here]</tr>

  insert filled row into "apps" by using it's ID
done
用于1中的每个对象
吵架
对于对象中的每个数据
制造新电池
将数据插入[此处]
将单元格插入[此处]
使用填充行的ID将其插入“应用程序”中
完成
这是否足以满足您想要了解的内容?

请查看此演示:

var jsonResponse={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
}
],
"2": [{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
},
{
“P”:“,
“Q”:“,
“R”:“,
“S”:“S”,
“T”:”
}
]
};
$.each(jsonResponse,函数(outerKey,list){
变量行=$(''{
id:“行”+outerKey
});
$.each(列表、函数(innerKey、值){
for(var输入值){
变量列=$(''{
id:钥匙,
文本:键
})
行。追加(列);
}
});
$(“#应用程序”)。追加(行);
});

查看此演示:

var jsonResponse={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
}
],
"2": [{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
},
{
“P”:“,
“Q”:“,
“R”:“,
“S”:“S”,
“T”:”
}
]
};
$.each(jsonResponse,函数(outerKey,list){
变量行=$(''{
id:“行”+outerKey
});
$.each(列表、函数(innerKey、值){
for(var输入值){
变量列=$(''{
id:钥匙,
文本:键
})
行。追加(列);
}
});
$(“#应用程序”)。追加(行);
});

试试这个简单的工作示例。我希望它能按照你的期望工作

var dataObj={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
},
{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
}
]};
var dictionaryData=dataObj[“1”];
for(字典数据中的变量i){
var table=document.getElementById(“应用程序”);
var tr=document.createElement(“tr”);
var td=document.createElement(“td”);
for(字典中的var键数据[i]){
var txt=document.createTextNode(键);
td.appendChild(txt);
tr.appendChild(td);
}
表1.儿童(tr);
}
表格,td{
边框:1px纯黑;
}

试试这个简单的工作示例。我希望它能按照你的期望工作

var dataObj={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
},
{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
}
]};
var dictionaryData=dataObj[“1”];
for(字典数据中的变量i){
var table=document.getElementById(“应用程序”);
var tr=document.createleme
CREATE PROC SearchAllTables 
(
    @SearchStr nvarchar(100)
)
AS
BEGIN

    CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

    SET NOCOUNT ON

    DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
    SET  @TableName = ''
    SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

    WHILE @TableName IS NOT NULL
    BEGIN
        SET @ColumnName = ''
        SET @TableName = 
        (
            SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
            FROM    INFORMATION_SCHEMA.TABLES
            WHERE       TABLE_TYPE = 'BASE TABLE'
                AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
                AND OBJECTPROPERTY(
                        OBJECT_ID(
                            QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                             ), 'IsMSShipped'
                               ) = 0
        )

        WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
        BEGIN
            SET @ColumnName =
            (
                SELECT MIN(QUOTENAME(COLUMN_NAME))
                FROM    INFORMATION_SCHEMA.COLUMNS
                WHERE       TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                    AND TABLE_NAME  = PARSENAME(@TableName, 1)
                    AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                    AND QUOTENAME(COLUMN_NAME) > @ColumnName
            )

            IF @ColumnName IS NOT NULL
            BEGIN
                INSERT INTO #Results
                EXEC
                (
                    'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
                    FROM ' + @TableName + ' (NOLOCK) ' +
                    ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
                )
            END
        END 
    END

    SELECT ColumnName, ColumnValue FROM #Results
 END


exec SearchAllTables @SearchStr='Canada'