So this redistributes the problem instead of solving it.
JSON is a file and interchange format - more technically a protocol.
It is not a data type.
> It is not a data type.
Although me, and I'm sure many others, have abused JSON and used it as a data type, I totally agree with you. However, GP was using JSON as an example of a more general idea. I needed to aggregate similar data across many different tables holding information collected from web scraping - typically one table corresponds to a particular service, and each service has it's own spider. My approach was to define a data model that contains all the information that I care about then write classes per service to convert its data to the format of the aforementioned data model. While the model can be serialized as JSON, it's composed of standard Python data types/classes and I don't constrain its design to be more amicable to serialization. Point being, while JSON is an intuitive example and can be a good go-to if your data matches it well, there's many ways to solve the N*M problem in this particular context.
An example of a narrow waist would be CSV - everything can export it, most things can import it, and you can usually fix whatever errors were introduced.
It also sucks bigtime.