Transit is similar but addresses the flaws described in this article
Protobufs can be encoded as JSON and as text, so there are some ways to address the readability I guess.
As for Protobuf, I tried using it in a number of places, but found it to be very inflexible (schema!) and hard to debug in case of problems.