How to compare two JSON documents (one with old values and one with updated values) and return what has changed or newly added to the new document.
For example
JSON document a (old document):
{
"Category": {
"0": "CAPTCHA",
"1": "Client Auto-update",
"2": "Connectivity Check",
"3": "Device Metrics (for 1.0+ and 2.0+ WorkSpaces client applications)",
"4": "Client Metrics (for 3.0+ WorkSpaces client applications)",
"5": "Dynamic Messaging Service (for 3.0+ WorkSpaces client applications)",
"6": "Directory Settings",
"7": "Forrester Log Service",
"8": "Health Check (DRP) Servers",
"9": "Registration Dependency (for Web Access and Teradici PCoIP Zero Clients)",
"10": "User Login Pages",
"11": "WS Broker",
"12": "WorkSpaces API Endpoints"
},
"Domain or IP address": {
"0": "https://opfcaptcha-prod.s3.amazonaws.com/",
"1": "https://d2td7dqidlhjx7.cloudfront.net/ In the AWS GovCloud (US-West) Region: https://s3.amazonaws.com/workspaces-client-updates/prod/pdt/windows/WorkSpacesAppCast.xml",
"2": "https://connectivity.amazonworkspaces.com/",
"3": "https://device-metrics-us-2.amazon.com/",
"4": "Domains: https://skylight-client-ds.us-east-1.amazonaws.com https://skylight-client-ds.us-west-2.amazonaws.com https://skylight-client-ds.ap-northeast-2.amazonaws.com https://skylight-client-ds.ap-southeast-1.amazonaws.com https://skylight-client-ds.ap-southeast-2.amazonaws.com https://skylight-client-ds.ap-northeast-1.amazonaws.com https://skylight-client-ds.ca-central-1.amazonaws.com https://skylight-client-ds.eu-central-1.amazonaws.com https://skylight-client-ds.eu-west-1.amazonaws.com https://skylight-client-ds.eu-west-2.amazonaws.com https://skylight-client-ds.sa-east-1.amazonaws.com In the AWS GovCloud (US-West) Region: https://skylight-client-ds.us-gov-west-1.amazonaws.com",
"5": "Domains: https://ws-client-service.us-east-1.amazonaws.com https://ws-client-service.us-west-2.amazonaws.com https://ws-client-service.ap-northeast-2.amazonaws.com https://ws-client-service.ap-southeast-1.amazonaws.com https://ws-client-service.ap-southeast-2.amazonaws.com https://ws-client-service.ap-northeast-1.amazonaws.com https://ws-client-service.ca-central-1.amazonaws.com https://ws-client-service.eu-central-1.amazonaws.com https://ws-client-service.eu-west-1.amazonaws.com https://ws-client-service.eu-west-2.amazonaws.com https://ws-client-service.sa-east-1.amazonaws.com",
"6": "Authentication from the client to the customer directory before login to the WorkSpace: https://d32i4gd7pg4909.cloudfront.net/prod/<region>/<directory ID> Connections from macOS clients: https://d32i4gd7pg4909.cloudfront.net/ Customer directory settings: https://d21ui22avrxoh6.cloudfront.net/prod/<region>/<directory ID> Login page graphics for customer directory level co-branding: https://d1cbg795sa4g1u.cloudfront.net/prod/<region>/<directory ID> CSS file to style the login pages: https://d3s98kk2h6f4oh.cloudfront.net/ https://dyqsoz7pkju4e.cloudfront.net/ JavaScript file for the login pages: US East (N. Virginia) — https://d32i4gd7pg4909.cloudfront.net/ US West (Oregon) — https://d18af777lco7lp.cloudfront.net/ Asia Pacific (Seoul) — https://dtyv4uwoh7ynt.cloudfront.net/ Asia Pacific (Singapore) — https://d3qzmd7y07pz0i.cloudfront.net/ Asia Pacific (Sydney) — https://dwcpoxuuza83q.cloudfront.net/ Asia Pacific (Tokyo) — https://d2c2t8mxjhq5z1.cloudfront.net/ Canada (Central) — https://d2wfbsypmqjmog.cloudfront.net/ Europe (Frankfurt) — https://d1whcm49570jjw.cloudfront.net/ Europe (Ireland) — https://d3pgffbf39h4k4.cloudfront.net/ Europe (London) — https://d16q6638mh01s7.cloudfront.net/ South America (São Paulo) — https://d2lh2qc5bdoq4b.cloudfront.net/ In the AWS GovCloud (US-West) Region: Customer directory settings: https://s3.amazonaws.com/workspaces-client-properties/prod/pdt/<directory ID> Login page graphics for customer directory level co-branding: https://s3.amazonaws.com/workspaces-client-assets/prod/pdt/<directory ID> CSS file to style the login pages: https://s3.amazonaws.com/workspaces-clients-css/workspaces_v2.css JavaScript file for the login pages: Not applicable",
"7": "https://fls-na.amazon.com/",
"8": "Health Check Servers",
"9": "https://s3.amazonaws.com",
"10": "https://<directory id>.awsapps.com/ (where <directory id> is the customer's domain)",
"11": "Domains: https://ws-broker-service.us-east-1.amazonaws.com https://ws-broker-service-fips.us-east-1.amazonaws.com https://ws-broker-service.us-west-2.amazonaws.com https://ws-broker-service-fips.us-west-2.amazonaws.com https://ws-broker-service.ap-northeast-2.amazonaws.com https://ws-broker-service.ap-southeast-1.amazonaws.com https://ws-broker-service.ap-southeast-2.amazonaws.com https://ws-broker-service.ap-northeast-1.amazonaws.com https://ws-broker-service.ca-central-1.amazonaws.com https://ws-broker-service.eu-central-1.amazonaws.com https://ws-broker-service.eu-west-1.amazonaws.com https://ws-broker-service.eu-west-2.amazonaws.com https://ws-broker-service.sa-east-1.amazonaws.com https://ws-broker-service.us-gov-west-1.amazonaws.com https://ws-broker-service-fips.us-gov-west-1.amazonaws.com",
"12": "Domains: https://workspaces.us-east-1.amazonaws.com https://workspaces-fips.us-east-1.amazonaws.com https://workspaces.us-west-2.amazonaws.com https://workspaces-fips.us-west-2.amazonaws.com https://workspaces.ap-northeast-2.amazonaws.com https://workspaces.ap-southeast-1.amazonaws.com https://workspaces.ap-southeast-2.amazonaws.com https://workspaces.ap-northeast-1.amazonaws.com https://workspaces.ca-central-1.amazonaws.com https://workspaces.eu-central-1.amazonaws.com https://workspaces.eu-west-1.amazonaws.com https://workspaces.eu-west-2.amazonaws.com https://workspaces.sa-east-1.amazonaws.com https://workspaces.us-gov-west-1.amazonaws.com https://workspaces-fips.us-gov-west-1.amazonaws.com"
}
}
JSON document b (new document):
{
"Category": {
"0": "CAPTCHA",
"1": "Client Auto-update",
"2": "Connectivity Check",
"3": "Device Metrics (for 1.0+ and 2.0+ WorkSpaces client applications)",
"4": "Client Metrics (for 3.0+ WorkSpaces client applications)",
"5": "Dynamic Messaging Service (for 3.0+ WorkSpaces client applications)",
"6": "Directory Settings",
"7": "Forrester Log Service",
"8": "Health Check (DRP) Servers",
"9": "Registration Dependency (for Web Access and Teradici PCoIP Zero Clients)",
"10": "User Login Pages",
"11": "WS Broker",
"12": "WorkSpaces API Endpoints"
},
"Domain or IP address": {
"0": "https://opfcaptcha-prod.s3.amazonaws.com/",
"1": "https://d2td7dqidlhjx7.cloudfront.net/ In the AWS GovCloud (US-West) Region: https://s3.amazonaws.com/workspaces-client-updates/prod/pdt/windows/WorkSpacesAppCast.xml",
"2": "https://connectivity.amazonworkspaces.com/",
"3": "https://device-metrics-us-2.amazon.com/",
"4": "Domains: https://skylight-client-ds.us-east-1.amazonaws.com https://skylight-client-ds.us-west-2.amazonaws.com https://skylight-client-ds.ap-northeast-2.amazonaws.com https://skylight-client-ds.ap-southeast-1.amazonaws.com https://skylight-client-ds.ap-southeast-2.amazonaws.com https://skylight-client-ds.ap-northeast-1.amazonaws.com https://skylight-client-ds.ca-central-1.amazonaws.com https://skylight-client-ds.eu-central-1.amazonaws.com https://skylight-client-ds.eu-west-1.amazonaws.com https://skylight-client-ds.eu-west-2.amazonaws.com https://skylight-client-ds.sa-east-1.amazonaws.com In the AWS GovCloud (US-West) Region: https://skylight-client-ds.us-gov-west-1.amazonaws.com",
"5": "Domains: https://ws-client-service.us-east-1.amazonaws.com https://ws-client-service.us-west-2.amazonaws.com https://ws-client-service.ap-northeast-2.amazonaws.com https://ws-client-service.ap-southeast-1.amazonaws.com https://ws-client-service.ap-southeast-2.amazonaws.com https://ws-client-service.ap-northeast-1.amazonaws.com https://ws-client-service.ca-central-1.amazonaws.com https://ws-client-service.eu-central-1.amazonaws.com https://ws-client-service.eu-west-1.amazonaws.com https://ws-client-service.eu-west-2.amazonaws.com https://ws-client-service.sa-east-1.amazonaws.com",
"6": "Authentication from the client to the customer directory before login to the WorkSpace: https://d32i4gd7pg4909.cloudfront.net/prod/<region>/<directory ID> Connections from macOS clients: https://d32i4gd7pg4909.cloudfront.net/ Customer directory settings: https://d21ui22avrxoh6.cloudfront.net/prod/<region>/<directory ID> Login page graphics for customer directory level co-branding: https://d1cbg795sa4g1u.cloudfront.net/prod/<region>/<directory ID> CSS file to style the login pages: https://d3s98kk2h6f4oh.cloudfront.net/ https://dyqsoz7pkju4e.cloudfront.net/ JavaScript file for the login pages: US East (N. Virginia) — https://d32i4gd7pg4909.cloudfront.net/ US West (Oregon) — https://d18af777lco7lp.cloudfront.net/ Asia Pacific (Seoul) — https://dtyv4uwoh7ynt.cloudfront.net/ Asia Pacific (Singapore) — https://d3qzmd7y07pz0i.cloudfront.net/ Asia Pacific (Sydney) — https://dwcpoxuuza83q.cloudfront.net/ Asia Pacific (Tokyo) — https://d2c2t8mxjhq5z1.cloudfront.net/ Canada (Central) — https://d2wfbsypmqjmog.cloudfront.net/ Europe (Frankfurt) — https://d1whcm49570jjw.cloudfront.net/ Europe (Ireland) — https://d3pgffbf39h4k4.cloudfront.net/ Europe (London) — https://d16q6638mh01s7.cloudfront.net/ South America (São Paulo) — https://d2lh2qc5bdoq4b.cloudfront.net/ In the AWS GovCloud (US-West) Region: Customer directory settings: https://s3.amazonaws.com/workspaces-client-properties/prod/pdt/<directory ID> Login page graphics for customer directory level co-branding: https://s3.amazonaws.com/workspaces-client-assets/prod/pdt/<directory ID> CSS file to style the login pages: https://s3.amazonaws.com/workspaces-clients-css/workspaces_v2.css JavaScript file for the login pages: Not applicable",
"7": "https://fls-na.amazon.com/",
"8": "Health Check Servers",
"9": "https://s3.amazonaws.com",
"10": "https://<directory id>.awsapps.com/ (where <directory id> is the customer's domain)",
"11": "Domains: https://ws-broker-service.us-east-1.amazonaws.com https://ws-broker-service-fips.us-east-1.amazonaws.com https://ws-broker-service.us-west-2.amazonaws.com https://ws-broker-service-fips.us-west-2.amazonaws.com https://ws-broker-service.ap-northeast-2.amazonaws.com https://ws-broker-service.ap-southeast-1.amazonaws.com https://ws-broker-service.ap-southeast-2.amazonaws.com https://ws-broker-service.ap-northeast-1.amazonaws.com https://ws-broker-service.ca-central-1.amazonaws.com https://ws-broker-service.eu-central-1.amazonaws.com https://ws-broker-service.eu-west-1.amazonaws.com https://ws-broker-service.eu-west-2.amazonaws.com https://ws-broker-service.sa-east-1.amazonaws.com https://ws-broker-service.us-gov-west-1.amazonaws.com https://ws-broker-service-fips.us-gov-west-1.amazonaws.com",
"12": "Domains: https://workspaces.us-east-2.amazonaws.com https://workspaces-fips.us-east-2.amazonaws.com https://workspaces.us-east-1.amazonaws.com https://workspaces-fips.us-east-1.amazonaws.com https://workspaces.us-west-2.amazonaws.com https://workspaces-fips.us-west-2.amazonaws.com https://workspaces.ap-northeast-2.amazonaws.com https://workspaces.ap-southeast-1.amazonaws.com https://workspaces.ap-southeast-2.amazonaws.com https://workspaces.ap-northeast-1.amazonaws.com https://workspaces.ca-central-1.amazonaws.com https://workspaces.eu-central-1.amazonaws.com https://workspaces.eu-west-1.amazonaws.com https://workspaces.eu-west-2.amazonaws.com https://workspaces.sa-east-1.amazonaws.com"
"13": "23.25.1.0"
}
}
Output should be:
Newly added URL/IP -
"13": "23.25.1.0"
https://workspaces.us-east-2.amazonaws.com https://workspaces-fips.us-east-2.amazonaws.com
Removed URL/IP -
https://workspaces.us-gov-west-1.amazonaws.com https://workspaces-fips.us-gov-west-1.amazonaws.com