通过JavaScriptdynamic创buildJSON对象(无级联string)

我有这个JSON数据:

{ "employees": [ { "firstName": "John", "lastName": "Doe" }, { "firstName": "Anna", "lastName": "Smith" }, { "firstName": "Peter", "lastName": "Jones" } ] } 

假设我不知道我有多less个员工列和行,我该如何在JavaScript中创build这个对象(没有连接string)? 假设我在“onGeneratedRow”方法中获取每一行,并且需要将每一列(firstName,lastName)推送到“{}”括号中。

 var viewData = { employees : [] }; var rowNum = -1; function onGeneratedRow(columnsResult) { rowNum = rowNum + 1; viewData.employees.push({}); columnsResult.forEach(function(column) { var columnName = column.metadata.colName; viewData.employees[rowNum][columnName] = column.value; }); } 

这是你需要的!

 function onGeneratedRow(columnsResult) { var jsonData = {}; columnsResult.forEach(function(column) { var columnName = column.metadata.colName; jsonData[columnName] = column.value; }); viewData.employees.push(jsonData); } 

也许这些信息会帮助你。

 var sitePersonel = {}; var employees = [] sitePersonel.employees = employees; console.log(sitePersonel); var firstName = "John"; var lastName = "Smith"; var employee = { "firstName": firstName, "lastName": lastName } sitePersonel.employees.push(employee); console.log(sitePersonel); var manager = "Jane Doe"; sitePersonel.employees[0].manager = manager; console.log(sitePersonel); console.log(JSON.stringify(sitePersonel)); 

这个话题,尤其是Xotic750的回答对我来说是非常有帮助的。 我想要生成一个jsonvariables传递给一个PHP脚本使用AJAX。 我的值被存储到两个数组,我想他们在JSON格式。 这是一个通用的例子:

 valArray1=[121,324,42,31]; valArray2=[232,131,443]; myJson={objArray1:{},objArray2:{}}; for(var k=1;k<valArray1.length;k++){ var objName='obj'+k; var objValue=valArray1[k]; myJson.objArray1[objName]=objValue; } for(var k=1;k<valArray2.length;k++){ var objName='obj'+k; var objValue=valArray2[k]; myJson.objArray2[objName]=objValue; } console.log(JSON.stringify(myJson)); 

控制台日志的结果应该是这样的:

 "{ "objArray1":{"obj1":121,"obj2":324,"obj3":42,"obj4":31}, "objArray2":{"obj1":232,"obj2":131,"obj3":443} }"