Module: Json

Defined in:
lib/json/merge.rb,
lib/json/merge/emitter.rb,
lib/json/merge/version.rb,
lib/json/merge/debug_logger.rb,
lib/json/merge/merge_result.rb,
lib/json/merge/node_wrapper.rb,
lib/json/merge/smart_merger.rb,
lib/json/merge/file_analysis.rb,
lib/json/merge/conflict_resolver.rb,
lib/json/merge/object_match_refiner.rb

Overview

Json::Merge provides a JSON file smart merge system using tree-sitter AST analysis.
It intelligently merges template and destination JSON files by identifying matching
keys and resolving differences using structural signatures.

For JSONC (JSON with Comments) support, see the jsonc-merge gem which handles
configuration files that include comments
(like devcontainer.json, tsconfig.json, VS Code settings, etc.).

Examples:

Basic usage

template = File.read("template.json")
destination = File.read("destination.json")
merger = Json::Merge::SmartMerger.new(template, destination)
result = merger.merge

With debug information

merger = Json::Merge::SmartMerger.new(template, destination)
debug_result = merger.merge_with_debug
puts debug_result[:content]
puts debug_result[:statistics]

Defined Under Namespace

Modules: Merge