How do you modify an existing .json files with a mod?

For example, if I want to change a recipe for the item so that it uses completely different items, how do I do so?

You need to completely recreate the entry. For example, I made this test modification that changes cordless drill recipe:

Summary
{
  "type": "recipe",
  "result": "cordless_drill",
  "category": "CC_ELECTRONIC",
  "subcategory": "CSC_ELECTRONIC_TOOLS",
  "components": [
    [ [ "boots_rubber", 1 ] ]
  ]
} 

But this sets crafting time to 0, removes all other prerequisites and so on. So I would need something like this instead:

Summary
{
  "type": "recipe",
  "result": "cordless_drill",
  "category": "CC_ELECTRONIC",
  "subcategory": "CSC_ELECTRONIC_TOOLS",
  "skill_used": "fabrication",
  "skills_required": [ "electronics", 3 ],
  "difficulty": 4,
  "time": "20 m",
  "reversible": true,
  "decomp_learn": 4,
  "book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 3 ] ],
  "using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
  "qualities": [ { "id": "SCREW", "level": 1 } ],
  "tools": [ [ [ "mold_plastic", -1 ] ] ],
  "components": [
    [ [ "boots_rubber", 1 ] ]
  ]
}

I think item definitions did have some inheritance but the number of attributes you had to explicitly add anyway was around 80% or more. Maybe this have changed since because development is very active.

That’s where the "copy-from" tag could help (if it’s possible to apply those to recipes, I’m not sure about that).
In your example case, "copy-from": "cordless_drill".

Oh, right, I forgot about that. Does it work well for overriding existing recipes? I do remember that it worked for items.