Mam te dane JSON:
{
"employees": [
{
"firstName": "John",
"lastName": "Doe"
},
{
"firstName": "Anna",
"lastName": "Smith"
},
{
"firstName": "Peter",
"lastName": "Jones"
}
]
}
Załóżmy, że nie wiem, ile mam kolumn i wierszy pracowników, jak utworzyć ten obiekt w JavaScript (bez ciągów konkatowych)? Załóżmy, że otrzymuję każdy wiersz w metodzie „onGeneratedRow” i muszę wcisnąć każdą kolumnę (firstName, lastName) w nawiasy „{}”.
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; });
}
javascript
json
ohadinho
źródło
źródło
columnsResult
? Co to jestmetadata
?columnsResult
Odpowiedzi:
To jest to, czego potrzebujesz!
function onGeneratedRow(columnsResult) { var jsonData = {}; columnsResult.forEach(function(column) { var columnName = column.metadata.colName; jsonData[columnName] = column.value; }); viewData.employees.push(jsonData); }
źródło
Być może te informacje ci pomogą.
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));
źródło
Ten temat, zwłaszcza odpowiedź Xotic750, był dla mnie bardzo pomocny. Chciałem wygenerować zmienną JSON, aby przekazać ją do skryptu PHP przy użyciu AJAX. Moje wartości były przechowywane w dwóch tablicach i chciałem, aby były w formacie json. To jest ogólny przykład:
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));
Wynik w dzienniku konsoli powinien wyglądać mniej więcej tak:
{ "objArray1": { "obj1": 121, "obj2": 324, "obj3": 42, "obj4": 31 }, "objArray2": { "obj1": 232, "obj2": 131, "obj3": 443 } }
źródło
var myObj = { id: "c001", name: "Hello Test" }
{ "id": "c001", "name": "Hello Test" }
źródło