export class JsonUtil { static merge(mainNode: any, updatedNode: any): any { if (typeof mainNode !== 'object' || typeof updatedNode !== 'object') { return updatedNode; } const mergedNode: any = {}; for (const key in updatedNode) { if (updatedNode.hasOwnProperty(key)) { mergedNode[key] = this.merge(mainNode[key], updatedNode[key]); } } for (const key in mainNode) { if (mainNode.hasOwnProperty(key) && !updatedNode.hasOwnProperty(key)) { mergedNode[key] = mainNode[key]; } } return mergedNode; } }