Javascript 表的关联数组

Javascript 表的关联数组,javascript,arrays,json,Javascript,Arrays,Json,我有一个JSON缩写版本,如下所述 { "jobs": [ {"name": "Start", "value": "Ready"}, {"name": "Date", "value": "2017-09-11"}, {"name": "Crew", "value": "Crew 3"}] } 我试图从JSON中读取值以生成一个表。 每个name元素都被设置为一个列标题,我试图将每个值从JSON读取到正确的列 我的显示器应该如下所示 |

我有一个JSON缩写版本,如下所述

{
    "jobs": [
        {"name": "Start", "value": "Ready"}, 
        {"name": "Date", "value": "2017-09-11"}, 
        {"name": "Crew", "value": "Crew 3"}]
}
我试图从JSON中读取值以生成一个表。 每个name元素都被设置为一个列标题,我试图将每个值从JSON读取到正确的列

我的显示器应该如下所示

|开始|日期|组员| |准备就绪| 2017-09-11 |第三组|

我在Taleau中创建模式,如下所示

myConnector.getSchema = function (schemaCallback) {
    var cols = [
        { id : "start", alias : "Start", dataType: tableau.dataTypeEnum.string },
        { id : "date", alias : "Date", dataType: tableau.dataTypeEnum.datetime },
        { id : "crew", alias : "Crew", dataType: tableau.dataTypeEnum.string }];
我的JavaScript生成的是:

var resp = response; // Response data from some API call - JSON as described above
var tableData = []; 
// Iterate over the JSON object
for (var i = 0, len = feat.length; i < len; i++) {
    tableData.push(
        { "start": resp[1]['value'] },
        { "date": resp[2]['value'] },
        { "crew": resp[3]['value'] });
        }

        table.appendRows(tableData);
        doneCallback();
    });
}
但是,在Tableau中生成时,每个值都在正确的列中,但每个值都在新行中。而不是一行中的所有值

例如

|开始|日期|船员|

|就绪|-||

|-| 2017-09-11 |-|

|-|-|第3组|


如何循环JSON并将每个值添加到tableData对象中,以便所有值都在同一行中?

您可以将所有内容放入一个对象数组中。从这里,您可以迭代这些值并将它们插入到表中

施工数据={艺术家:{姓名:开始,价值:准备},{姓名:日期,价值:2017-09-11},{姓名:班组,价值:艺术家班组1}],劳务:{姓名:开始,价值:准备},{姓名:日期,价值:2017-09-2},{姓名:班组,价值:劳务班组2}],会计:[{姓名:开始,价值:准备},{姓名:日期,价值:2017-09-13},{姓名:班组,价值:账户班组3}],somethingElse:[{name:Start,value:Ready},{name:Date,value:2017-09-14},{name:Crew,value:somethingElse Crew 4},}, tableData=Object.entriesdata.mapx=>{Ready:x[1][0]。值,日期:x[1][1]。值,工作组:x[1][2]。值};
console.logtableData;我只是猜测,但从您的输出来看,您可能需要添加数据,并将所有键设置为与列匹配:{start:'check',date:'this',crew:'row'},您能做个小动作吗?为什么要单独推送值而不是作为单个对象推送?能否更改tableData.push{start:resp[1]['value']},{date:resp[2]['value']},{crew:resp[3]['value']};}到tableData。按{start:resp[1]['value'],date:resp[2]['value'],crew:resp[3]['value']};}