GET action used for "navigation" within this tree structure
The only way you could overcome this is if the JSON is a Matrix asset and you are 4.14.1+. There is a feature that allows you to preprocess Matrix keywords and that would allow you to use a global keyword to get the contents of another asset, thus avoiding the GET to an external source.
performance (parsing and processing a fairly large object whenever the page is accessed
I think the only other option here would be to use native PHP on the server to solve the problem. That would either be custom script or development to Matrix to allow you to produce the kind of output you want. If you are a Squiz client and want to customise like that there may be some SLA considerations, but you could also engage Squiz to do that kind of work for you.