Human-edited JSON (for which you should probably use something like JSON5 instead) is reasonable to work with.
Unfortunately typical machine-generated JSON is completely undiffable - it's all one big line, so trying to run git diff or git log -p will produce full content on before and after side, and you'll have no idea what actually changed without copying both before and after to external files, formatting them, and diffing the result - fairly slow and messy process.
Fortunately this is solvable. First, get latest version of my unix-utilities repositories for json_pp script for pretty-printing JSON (or any other json pretty-printer) and put it somewhere in your $PATH.
Then tell git to treat json as special file for purpose of diffing.
To do it globally:
echo "*.json diff=json" >> ~/.gitattributes
echo "*.json diff=json" >> .gitattributes
You can use similar technique for other sort-of-text-but-not-really files like machine-generated XML.
textconv is only applied for human readable command output, so it doesn't affect any internal workings of git, and if you want to see raw diffs for any reasons you can always use --no-textconv argument to git diff.