[英]How to merge JSON Objects having same name
Initially I had Json Array which is array of array objects using underscore
groupBy
function , I have grouped and each are grouped but again I wanted to merge all the arrays which is having same object name , Below is the way I wanted to implement ,Can someone help me on this. 最初我有Json Array,它是使用
underscore
groupBy
函数的数组对象的数组,我已经进行了分组,每个都进行了分组,但是我又想合并所有具有相同对象名的数组,下面是我想要实现的方式,有人帮助我。
ie I have same JSON objects having same versionId
in JSON array and now I wanted to merge all the JSON object which are having same versionId
即我在JSON数组中有具有相同
versionId
相同JSON对象,现在我想合并所有具有相同versionId
的JSON对象
Can someone help it can be done easily using underscore
or Lodash
frameworks 有人可以使用
underscore
或Lodash
框架轻松完成Lodash
Input JSON 输入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"
}
]
}
]
Output JSON as I wanted 根据需要输出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"
},
{
"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"
}
]
}
]
If you know that structure will be exactly like this, here is quite simple solution: 如果您知道结构将完全像这样,这是一个非常简单的解决方案:
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) { result[key] = (key in result? result[key].concat(obj[key]) : obj[key]); } return result; } console.log(a.reduce(filterKeys, {}));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.