If GNU decided tomorrow that all utilities need to have a --json output argument then that would make me a very happy person.
That still limits us too much due to the rather severely limited available data types (although arbitrary types could be serialized into binary/string data, I guess...)
Funny that you should mention this. I just hit that problem yesterday. The lack of a binary type is a problem. This is the same thing that hit XML. Unfortunately (or fortunately), the best solution is still the MIME stuff.
Better than nothing, but the problem with that is that you can't construct a deep, lazily evaluated pipeline. JSON can't be outputted until all the data is collected.
There's a streaming format which is used for this: JSON Lines [1] AKA newline-delimited JSON [2].
I'm trying to elicit more of a response from the comment author. I think they make some good points. I would like to learn more about their ideal system.