@byte I don't know if there are better tools, however, in many languages, a JSON structure is mapped to a dictionnary structure (associative array, hash table, ...). In some languages, the JSON structure is the syntax to define the dictionnary structure.
If you need to diff and merge JSON regularly, you may want to write your own program comparing two tables and outputting the differences (or even merging them if your goal is to do this).
I would check on github (and if you use linux, in the packages provided by your distro) to see if there are tools or libraries already doing this, but writing your own tool would be the last resort solution.