2017-03-02 10 views
0

Ich bekomme Daten in einem Format zurück, das für das Verarbeitungssystem nicht akzeptabel ist, und ich versuche, die Daten zu konvertieren. Unten sind die Daten, die ich bekomme, und der erforderliche JSON darunter. Ich habe verschiedene Dinge ausprobiert, wie zum Beispiel ein Object innerhalb der Daten zu finden und zu prüfen, ob es mehr als ein Element hat und dann dieses Objekt in Array[] umwandeln, aber ich kann das nicht.Konvertieren von Objekt in Array innerhalb eines Objekts in JavaScript

Wenn Sie irgendwelche Eingaben haben, würde ich es begrüßen.

if(typeof ob1=== "object" && Object.keys(ob1.length > 1) && typeof Object.keys(ob1) === "object") 
{ 
    console.log(ob1); // I get all the objects and not the parent object i need to change. 
} 

Präsens Daten:

ob1 : {id: 1, details: Object, profession: "Business"} 

JSON:

{ 
    "id": "1", 
    "details": { 
    "0": { 
     "name": "Peter", 
     "address": "Arizona", 
     "phone": 9900998899 
    }, 
    "1": { 
     "name": "Jam", 
     "address": "Kentucky", 
     "phone": 56034033343 
    } 
    }, 
    "profession": "Business" 
} 

Erforderliche Daten:

{id: 1, details: Array[2], profession: "Business"} 

Required JSON:

{ 
    "id": "1", 
    "details": [ 
    { 
     "name": "Peter", 
     "address": "Arizona", 
     "phone": 9900998899 
    }, 
    { 
     "name": "Jam", 
     "address": "Kentucky", 
     "phone": 56034033343 
    } 
    ], 
    "profession": "Business" 
} 
+2

JSON ein String/Text-Format ist. Es gibt also kein "JSON-Objekt" oder "JSON-Array". –

Antwort

2

Sie müssen gehen durch die Details Objekt und wandeln es in ein Array:

var x = { 
    details: { 

    0: {a: 1}, 
    1: {a: 2} 
    } 
} 

var detailsArr = []; 

for(key in x.details) { 
    detailsArr.push(x.details[key]); 
} 

x.details = detailsArr; 

//x.details = [{a: 1}, {a: 2}] 
Verwandte Themen