Existe um mapeamento padrão entre JSON e buffers de protocolo?

De um comentário nopublicação no blog de anúncio:

Em relação ao JSON: JSON é estruturado de maneira semelhante aos Buffers de Protocolo, mas o formato binário do buffer de protocolo ainda é menor e mais rápido de codificar. No entanto, o JSON cria uma excelente codificação de texto para buffers de protocolo - é trivial escrever um codificador / decodificador que converte mensagens arbitrárias de protocolo de e para JSON, usando a reflexão protobuf. Essa é uma boa maneira de se comunicar com aplicativos AJAX, pois fazer com que o usuário baixe um decodificador de protobuf completo quando visitar sua página pode ser demais.

Pode ser trivial cozinhara mapeamento, mas existe um único mapeamento "óbvio" entre os dois com os quais duas equipes de desenvolvimento separadas resolveriam naturalmente? Se dois produtos suportassem dados do PB e pudessem interoperar porque compartilhavam a mesma especificação .proto, será que eles ainda poderiam interoperar se introduzissem independentemente um reflexo JSON da mesma especificação. Pode haver algumas decisões arbitrárias a serem tomadas, por exemplo, os valores de enumeração devem ser representados por uma cadeia de caracteres (para ser legível por humanos em um JSON típico) ou por seu valor inteiro?

Portanto, existe um mapeamento estabelecido e quaisquer implementações de código aberto para gerar codificadores / decodificadores JSON a partir de especificações .proto?

questionAnswers(6)

yourAnswerToTheQuestion