is there a simple way to combine two jsons based on the value. In the MainJson , i have an element "downloads" which has multiple id's seprated by a comma. So based on the downloadsID from MainJson,values from SecondJson needs to be appended
MainJson: `
{
"ProductMaster": [
{
"SEODescription": "32742, 396660",
"SEOTitle": "PRODUCT 1 SEO TITLE",
"accesoires": "1172658,1172659",
"applications": "1172647,1172648,1172649",
"contactPerson": "1172661",
"downloads": "1172663,1172669,1172670",
"highlights": "396658",
"id": "1172641",
"isNew": "1",
"isSparePart": "1172663,1172669,1172670",
"name": "Product 1",
"productItems": "A4F0630502M1,A1Z1100041M1,A1G1800061M1,A4D1251181E1,105500450100",
"relatedProducts": "1172658,1172659",
"shortCode": "PROD1",
"shortDescription": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
"videos": "396657,396659"
},
{
"SEODescription": "",
"SEOTitle": "PRODUCT 1 SEO TITLE",
"accesoires": "1172641",
"applications": "1172647,1172648,1172649",
"contactPerson": "1172661",
"downloads": "1172663",
"highlights": "396657",
"id": "1172658",
"isNew": "1",
"isSparePart": "1172663",
"name": "Product 2",
"productItems": "613831,613823,613852",
"relatedProducts": "1172641",
"shortCode": "PROD2",
"shortDescription": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
"videos": "396659"
}
]
}
`
SecondJson
`
{
"downloads": [
{
"actualHeight": "1146",
"actualWidth": "1146",
"categories": "1172668",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_396657",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/PIM-NEW/IMAGE_2.JPG",
"fileSize": "0",
"fileType": "JPG",
"id": "1172669",
"mimeType": "IMAGE/JPEG",
"name": "Download 2"
},
{
"actualHeight": "1980",
"actualWidth": "1980",
"categories": "1172666",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_396658",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/PIM-NEW/IMAGE_1.JPG",
"fileSize": "201965",
"fileType": "JPG",
"id": "1172663",
"mimeType": "IMAGE/JPEG",
"name": "Download 1"
},
{
"actualHeight": "2875",
"actualWidth": "2875",
"categories": "1172666,1172668",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_86356",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/_DEFAULT_UPLOAD_BUCKET/0205800.JPG",
"fileSize": "0",
"fileType": "JPG",
"id": "1172670",
"mimeType": "IMAGE/JPEG",
"name": "Download 3"
}
]
}
`
Expected Result: `
{
"ProductMaster": [
{
"SEODescription": "32742, 396660",
"SEOTitle": "PRODUCT 1 SEO TITLE",
"accesoires": "1172658,1172659",
"applications": "1172647,1172648,1172649",
"contactPerson": "1172661",
"downloads": [
{
"actualHeight": "1146",
"actualWidth": "1146",
"categories": "1172668",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_396657",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/PIM-NEW/IMAGE_2.JPG",
"fileSize": "0",
"fileType": "JPG",
"id": "1172669",
"mimeType": "IMAGE/JPEG",
"name": "Download 2"
},
{
"actualHeight": "1980",
"actualWidth": "1980",
"categories": "1172666",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_396658",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/PIM-NEW/IMAGE_1.JPG",
"fileSize": "201965",
"fileType": "JPG",
"id": "1172663",
"mimeType": "IMAGE/JPEG",
"name": "Download 1"
},
{
"actualHeight": "2875",
"actualWidth": "2875",
"categories": "1172666,1172668",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_86356",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/_DEFAULT_UPLOAD_BUCKET/0205800.JPG",
"fileSize": "0",
"fileType": "JPG",
"id": "1172670",
"mimeType": "IMAGE/JPEG",
"name": "Download 3"
}
],
"highlights": "396658",
"id": "1172641",
"isNew": "1",
"isSparePart": "1172663,1172669,1172670",
"name": "Product 1",
"productItems": "A4F0630502M1,A1Z1100041M1,A1G1800061M1,A4D1251181E1,105500450100",
"relatedProducts": "1172658,1172659",
"shortCode": "PROD1",
"shortDescription": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
"videos": "396657,396659"
},
{
"SEODescription": "",
"SEOTitle": "PRODUCT 1 SEO TITLE",
"accesoires": "1172641",
"applications": "1172647,1172648,1172649",
"contactPerson": "1172661",
"downloads": [
{
"actualHeight": "2875",
"actualWidth": "2875",
"categories": "1172666,1172668",
"deepLink": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/ASSET/DEEPLINK/IMAGE_86356",
"effectiveUrl": "HTTPS://ALIAXIS-WEBSITES.DDEV.SITE/_DEFAULT_UPLOAD_BUCKET/0205800.JPG",
"fileSize": "0",
"fileType": "JPG",
"id": "1172670",
"mimeType": "IMAGE/JPEG",
"name": "Download 3"
}
],
"highlights": "396657",
"id": "1172658",
"isNew": "1",
"isSparePart": "1172663",
"name": "Product 2",
"productItems": "613831,613823,613852",
"relatedProducts": "1172641",
"shortCode": "PROD2",
"videos": "396659"
}
]
}
`
is there any groovyfunction which can do the lookup and combine the Jsons
The code can look roughly as:
mainJson.ProductMaster.each{ master ->
List<String> dlIds = master.downloads.split( ',' )
master.downloads = secondJson.downloads.findAll{ it.id in dlIds }
}