[javascript] 문자열을 연결하지 않고 JavaScript를 통해 동적으로 JSON 객체 생성

이 JSON 데이터가 있습니다.

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

직원의 열과 행 수를 모르는 경우 문자열로 연결하지 않고 JavaScript로이 개체를 작성하는 방법은 무엇입니까? “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의 답변은 저에게 매우 도움이되었습니다. 아약스를 사용하여 PHP 스크립트에 전달하기 위해 json 변수를 생성하고 싶었습니다. 내 값은 두 개의 배열에 저장되었으며 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
  }
}


답변

자바 스크립트

var myObj = {
   id: "c001",
   name: "Hello Test"
}

결과 (JSON)

{
   "id": "c001",
   "name": "Hello Test"
}


답변