it-swarm.com.de

JSON-Objekt dynamisch über JavaScript erstellen (ohne concat-Zeichenfolgen)

Ich habe diese JSON-Daten:

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

Angenommen, ich weiß nicht, wie viele Spalten und Zeilen meiner Mitarbeiter ich habe. Wie erstelle ich dieses Objekt in JavaScript (ohne verkürzte Zeichenfolgen)? Angenommen, ich bekomme jede Zeile in der "onGeneratedRow" -Methode und muss jede Spalte (firstName, lastName) in die Klammern '{}' schieben.

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;  });
}
100
ohadinho

Das brauchen Sie!

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

Vielleicht helfen Ihnen diese Informationen.

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));

72
Xotic750

Dieses Thema, insbesondere die Antwort von Xotic750, war für mich sehr hilfreich. Ich wollte eine Json-Variable generieren, um sie mithilfe von Ajax an ein PHP-Skript zu übergeben. Meine Werte wurden in zwei Arrays gespeichert, und ich wollte sie im Json-Format haben ... Dies ist ein allgemeines Beispiel:

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));

Das Ergebnis im Konsolenprotokoll sollte ungefähr so ​​aussehen:

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

JavaScript

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

Ergebnis (JSON)

{
   "id": "c001",
   "name": "Hello Test"
}
0
Ishan Lakshitha