2017-10-04 3 views
0

Initialement j'avais Json Array qui est un tableau d'objets de tableau utilisant la fonction underscoregroupBy, j'ai groupé et chacun est groupé mais encore une fois je voulais fusionner tous les tableaux qui ont le même nom d'objet, Voici la façon dont je voulais mettre en œuvre, Quelqu'un peut-il m'aider à ce sujet.Comment fusionner des objets JSON ayant le même nom

-à-dire que j'ai même des objets JSON ayant même versionId dans le tableau JSON et maintenant je voulais fusionner tout l'objet JSON qui ont de la même versionId

Quelqu'un peut-il l'aider peut se faire facilement en utilisant underscore ou Lodash cadres

entrée JSON

[ 
    { 
    "21289": [ 
     { 
     "id": 255463, 
     "orderId": 226433, 
     "status": 1, 
     "executedOn": "25/Sep/17", 
     "executedBy": "Person A", 
     "executedByDisplay": "Person A", 
     "cycleId": 4042, 
     "cycleName": "Cycle A", 
     "versionId": 21289, 
     "versionName": "Version A", 
     "issueKey": "A" 
     }, 
     { 
     "id": 255433, 
     "orderId": 226403, 
     "status": 1, 
     "executedOn": "25/Sep/17", 
     "executedBy": "Person B", 
     "executedByDisplay": "Person B", 
     "cycleId": 4041, 
     "cycleName": "Cycle B", 
     "versionId": 21289, 
     "versionName": "Version A", 
     "issueKey": "B" 
     }, 
     { 
     "id": 255432, 
     "orderId": 226402, 
     "status": 1, 
     "executedOn": "25/Sep/17", 
     "executedBy": "Person B", 
     "executedByDisplay": "Person B", 
     "cycleId": 4041, 
     "cycleName": "Cycle B", 
     "versionId": 21289, 
     "versionName": "Version A", 
     "issueKey": "C" 
     } 
    ], 
    "21291": [ 
     { 
     "id": 252067, 
     "orderId": 223258, 
     "status": 1, 
     "executedOn": "12/Sep/17", 
     "executedBy": "Person C", 
     "executedByDisplay": "Person C", 
     "cycleId": 3985, 
     "cycleName": "Cycle C", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "D" 
     }, 
     { 
     "id": 252014, 
     "orderId": 223205, 
     "status": 1, 
     "executedOn": "12/Sep/17", 
     "executedBy": "Person C", 
     "executedByDisplay": "Person C", 
     "cycleId": 3985, 
     "cycleName": "Cycle C", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "E" 
     }, 
     { 
     "id": 252012, 
     "orderId": 223203, 
     "status": 1, 
     "executedOn": "11/Sep/17", 
     "executedBy": "Person D", 
     "executedByDisplay": "Person D", 
     "cycleId": 3985, 
     "cycleName": "Cycle C", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "F" 
     } 
    ] 
    }, 
    { 
    "21291": [ 
     { 
     "id": 251449, 
     "orderId": 222640, 
     "status": 1, 
     "executedOn": "31/Aug/17", 
     "executedBy": "Person E", 
     "executedByDisplay": "Person E", 
     "cycleId": 3978, 
     "cycleName": "Cycle D", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "G" 
     }, 
     { 
     "id": 251299, 
     "orderId": 222490, 
     "status": 1, 
     "executedOn": "1/Sep/17", 
     "executedBy": "Person F", 
     "executedByDisplay": "Person F", 
     "cycleId": 3977, 
     "cycleName": "Cycle E", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "H" 
     } 
    ], 
    "31457": [ 
     { 
     "id": 250969, 
     "orderId": 222160, 
     "status": 1, 
     "executedOn": "29/Aug/17", 
     "executedBy": "Person G", 
     "executedByDisplay": "Person G", 
     "cycleId": 3973, 
     "cycleName": "Cycle F", 
     "versionId": 31457, 
     "versionName": "Version C", 
     "issueKey": "I" 
     }, 
     { 
     "id": 250871, 
     "orderId": 222062, 
     "status": 1, 
     "executedOn": "31/Aug/17", 
     "executedBy": "Person D", 
     "executedByDisplay": "Person D", 
     "cycleId": 3973, 
     "cycleName": "Cycle F", 
     "versionId": 31457, 
     "versionName": "Version C", 
     "issueKey": "J" 
     }, 
     { 
     "id": 250869, 
     "orderId": 222060, 
     "status": 1, 
     "executedOn": "4/Sep/17", 
     "executedBy": "Person H", 
     "executedByDisplay": "Person H", 
     "cycleId": 3973, 
     "cycleName": "Cycle F", 
     "versionId": 31457, 
     "versionName": "Version C", 
     "issueKey": "K" 
     } 
    ] 
    } 
] 

JSON que je voulais

[ 
    { 
    "21289": [ 
     { 
     "id": 255463, 
     "orderId": 226433, 
     "status": 1, 
     "executedOn": "25/Sep/17", 
     "executedBy": "Person A", 
     "executedByDisplay": "Person A", 
     "cycleId": 4042, 
     "cycleName": "Cycle A", 
     "versionId": 21289, 
     "versionName": "Version A", 
     "issueKey": "A" 
     }, 
     { 
     "id": 255433, 
     "orderId": 226403, 
     "status": 1, 
     "executedOn": "25/Sep/17", 
     "executedBy": "Person B", 
     "executedByDisplay": "Person B", 
     "cycleId": 4041, 
     "cycleName": "Cycle B", 
     "versionId": 21289, 
     "versionName": "Version A", 
     "issueKey": "B" 
     }, 
     { 
     "id": 255432, 
     "orderId": 226402, 
     "status": 1, 
     "executedOn": "25/Sep/17", 
     "executedBy": "Person B", 
     "executedByDisplay": "Person B", 
     "cycleId": 4041, 
     "cycleName": "Cycle B", 
     "versionId": 21289, 
     "versionName": "Version A", 
     "issueKey": "C" 
     } 
    ], 
    "21291": [ 
     { 
     "id": 252067, 
     "orderId": 223258, 
     "status": 1, 
     "executedOn": "12/Sep/17", 
     "executedBy": "Person C", 
     "executedByDisplay": "Person C", 
     "cycleId": 3985, 
     "cycleName": "Cycle C", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "D" 
     }, 
     { 
     "id": 252014, 
     "orderId": 223205, 
     "status": 1, 
     "executedOn": "12/Sep/17", 
     "executedBy": "Person C", 
     "executedByDisplay": "Person C", 
     "cycleId": 3985, 
     "cycleName": "Cycle C", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "E" 
     }, 
     { 
     "id": 252012, 
     "orderId": 223203, 
     "status": 1, 
     "executedOn": "11/Sep/17", 
     "executedBy": "Person D", 
     "executedByDisplay": "Person D", 
     "cycleId": 3985, 
     "cycleName": "Cycle C", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "F" 
     }, 
     { 
     "id": 251449, 
     "orderId": 222640, 
     "status": 1, 
     "executedOn": "31/Aug/17", 
     "executedBy": "Person E", 
     "executedByDisplay": "Person E", 
     "cycleId": 3978, 
     "cycleName": "Cycle D", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "G" 
     }, 
     { 
     "id": 251299, 
     "orderId": 222490, 
     "status": 1, 
     "executedOn": "1/Sep/17", 
     "executedBy": "Person F", 
     "executedByDisplay": "Person F", 
     "cycleId": 3977, 
     "cycleName": "Cycle E", 
     "versionId": 21291, 
     "versionName": "Version B", 
     "issueKey": "H" 
     } 
    ], 
    "31457": [ 
     { 
     "id": 250969, 
     "orderId": 222160, 
     "status": 1, 
     "executedOn": "29/Aug/17", 
     "executedBy": "Person G", 
     "executedByDisplay": "Person G", 
     "cycleId": 3973, 
     "cycleName": "Cycle F", 
     "versionId": 31457, 
     "versionName": "Version C", 
     "issueKey": "I" 
     }, 
     { 
     "id": 250871, 
     "orderId": 222062, 
     "status": 1, 
     "executedOn": "31/Aug/17", 
     "executedBy": "Person D", 
     "executedByDisplay": "Person D", 
     "cycleId": 3973, 
     "cycleName": "Cycle F", 
     "versionId": 31457, 
     "versionName": "Version C", 
     "issueKey": "J" 
     }, 
     { 
     "id": 250869, 
     "orderId": 222060, 
     "status": 1, 
     "executedOn": "4/Sep/17", 
     "executedBy": "Person H", 
     "executedByDisplay": "Person H", 
     "cycleId": 3973, 
     "cycleName": "Cycle F", 
     "versionId": 31457, 
     "versionName": "Version C", 
     "issueKey": "K" 
     } 
    ] 
    } 
] 
+0

double possible de [Trier tableau JSON par une propriété en javascript? ] (https://stackoverflow.com/questions/21883584/sort-json-array-by-a-property-in-javascript) –

+0

Non, je suis passé par ces questions, cela n'aide pas. Ici j'ai des tableaux et j'ai besoin de fusionner en considérant tous les tableaux – Batman

+2

@Batman La sortie json et l'entrée json que vous avez posté sont identiques .. –

Répondre

1

Si vous savez que la structure sera exactement comme ça, voici une solution assez simple:

var a = [ 
 
    { 
 
    "21289": [ 
 
     { 
 
     "id": 255463, 
 
     "orderId": 226433, 
 
     "status": 1, 
 
     "executedOn": "25/Sep/17", 
 
     "executedBy": "Person A", 
 
     "executedByDisplay": "Person A", 
 
     "cycleId": 4042, 
 
     "cycleName": "Cycle A", 
 
     "versionId": 21289, 
 
     "versionName": "Version A", 
 
     "issueKey": "A" 
 
     }, 
 
     { 
 
     "id": 255433, 
 
     "orderId": 226403, 
 
     "status": 1, 
 
     "executedOn": "25/Sep/17", 
 
     "executedBy": "Person B", 
 
     "executedByDisplay": "Person B", 
 
     "cycleId": 4041, 
 
     "cycleName": "Cycle B", 
 
     "versionId": 21289, 
 
     "versionName": "Version A", 
 
     "issueKey": "B" 
 
     }, 
 
     { 
 
     "id": 255432, 
 
     "orderId": 226402, 
 
     "status": 1, 
 
     "executedOn": "25/Sep/17", 
 
     "executedBy": "Person B", 
 
     "executedByDisplay": "Person B", 
 
     "cycleId": 4041, 
 
     "cycleName": "Cycle B", 
 
     "versionId": 21289, 
 
     "versionName": "Version A", 
 
     "issueKey": "C" 
 
     } 
 
    ], 
 
    "21291": [ 
 
     { 
 
     "id": 252067, 
 
     "orderId": 223258, 
 
     "status": 1, 
 
     "executedOn": "12/Sep/17", 
 
     "executedBy": "Person C", 
 
     "executedByDisplay": "Person C", 
 
     "cycleId": 3985, 
 
     "cycleName": "Cycle C", 
 
     "versionId": 21291, 
 
     "versionName": "Version B", 
 
     "issueKey": "D" 
 
     }, 
 
     { 
 
     "id": 252014, 
 
     "orderId": 223205, 
 
     "status": 1, 
 
     "executedOn": "12/Sep/17", 
 
     "executedBy": "Person C", 
 
     "executedByDisplay": "Person C", 
 
     "cycleId": 3985, 
 
     "cycleName": "Cycle C", 
 
     "versionId": 21291, 
 
     "versionName": "Version B", 
 
     "issueKey": "E" 
 
     }, 
 
     { 
 
     "id": 252012, 
 
     "orderId": 223203, 
 
     "status": 1, 
 
     "executedOn": "11/Sep/17", 
 
     "executedBy": "Person D", 
 
     "executedByDisplay": "Person D", 
 
     "cycleId": 3985, 
 
     "cycleName": "Cycle C", 
 
     "versionId": 21291, 
 
     "versionName": "Version B", 
 
     "issueKey": "F" 
 
     } 
 
    ] 
 
    }, 
 
    { 
 
    "21291": [ 
 
     { 
 
     "id": 251449, 
 
     "orderId": 222640, 
 
     "status": 1, 
 
     "executedOn": "31/Aug/17", 
 
     "executedBy": "Person E", 
 
     "executedByDisplay": "Person E", 
 
     "cycleId": 3978, 
 
     "cycleName": "Cycle D", 
 
     "versionId": 21291, 
 
     "versionName": "Version B", 
 
     "issueKey": "G" 
 
     }, 
 
     { 
 
     "id": 251299, 
 
     "orderId": 222490, 
 
     "status": 1, 
 
     "executedOn": "1/Sep/17", 
 
     "executedBy": "Person F", 
 
     "executedByDisplay": "Person F", 
 
     "cycleId": 3977, 
 
     "cycleName": "Cycle E", 
 
     "versionId": 21291, 
 
     "versionName": "Version B", 
 
     "issueKey": "H" 
 
     } 
 
    ], 
 
    "31457": [ 
 
     { 
 
     "id": 250969, 
 
     "orderId": 222160, 
 
     "status": 1, 
 
     "executedOn": "29/Aug/17", 
 
     "executedBy": "Person G", 
 
     "executedByDisplay": "Person G", 
 
     "cycleId": 3973, 
 
     "cycleName": "Cycle F", 
 
     "versionId": 31457, 
 
     "versionName": "Version C", 
 
     "issueKey": "I" 
 
     }, 
 
     { 
 
     "id": 250871, 
 
     "orderId": 222062, 
 
     "status": 1, 
 
     "executedOn": "31/Aug/17", 
 
     "executedBy": "Person D", 
 
     "executedByDisplay": "Person D", 
 
     "cycleId": 3973, 
 
     "cycleName": "Cycle F", 
 
     "versionId": 31457, 
 
     "versionName": "Version C", 
 
     "issueKey": "J" 
 
     }, 
 
     { 
 
     "id": 250869, 
 
     "orderId": 222060, 
 
     "status": 1, 
 
     "executedOn": "4/Sep/17", 
 
     "executedBy": "Person H", 
 
     "executedByDisplay": "Person H", 
 
     "cycleId": 3973, 
 
     "cycleName": "Cycle F", 
 
     "versionId": 31457, 
 
     "versionName": "Version C", 
 
     "issueKey": "K" 
 
     } 
 
    ] 
 
    } 
 
]; 
 

 
function filterKeys(result, obj) { 
 
    for (var key in obj) { 
 
    \t result[key] = (key in result? result[key].concat(obj[key]) : obj[key]); 
 
    } 
 
    return result; 
 
} 
 
console.log(a.reduce(filterKeys, {}));

+0

Merci Vérification maintenant !! – Batman