[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"
}