FWIW, JsonTools v8.3.1.3 (see instructions for downloading an unreleased version) now has a function that would allow JsonTools to solve this problem without knowing the full structure of the JSON document.
recurse_until(@, and(@.Value > 100, @.Name == Intensity))[:].Value = 1.0 will convert all the Value instances greater than 100 where the Name was Intensity to 1.0.
For example, in {"foo": [{"Value": 101, "Name": "Intensity"}, {"Name": "Blah", "Value": 200}], "bar": {"Name": "Intensity", "Value": 60}}, running this query would return {"foo": [{"Value": 1.0, "Name": "Intensity"}, {"Name": "Blah", "Value": 200}], "bar": {"Name": "Intensity", "Value": 60}}
I should note that the recurse_until method is very slow compared to other JsonTools functions because it can potentially throw and catch an exception for every node in a document, so I do not endorse this approach for very large documents.