> Don't use binary formats when it isn't absolutely needed.
JSON in particular isn't very good [0] but I'd also argue that text formats in general aren't great. Isn't it a lot better that an int32_t always takes exactly 4 bytes instead of anywhere between one and eleven bytes (-2147483648)?
one use-case is if you need to be able to stream the data.