Aus einem Kommentar auf der Ankündigung Blog Post :
Bezüglich JSON: JSON ist ähnlich strukturiert ähnlich wie Protokollpuffer, aber Protokollpuffer-Binärformat ist noch kleiner und schneller zu kodieren. JSON ist eine hervorragende Textkodierung für Protokollpuffer, obwohl es trivial ist ist es trivial, einen Encoder/Decoder zu schreiben zu schreiben, der beliebige Protokoll Nachrichten nach und von JSON konvertiert, indem man protobuf-Reflexion. Dies ist ein guter Weg, um mit AJAX-Anwendungen zu kommunizieren, denn der Benutzer muss einen vollständigen protobuf decoder herunterzuladen, wenn er Ihre Seite herunterzuladen, könnte zu viel sein.
Es mag trivial sein, etwas zu kochen a Mapping, aber gibt es ein einziges "offensichtliches" Mapping zwischen den beiden, auf das sich zwei getrennte Entwicklungsteams natürlich einigen würden? Wenn zwei Produkte PB-Daten unterstützen und interoperabel sind, weil sie dieselbe .proto-Spezifikation verwenden, frage ich mich, ob sie immer noch interoperabel wären, wenn sie unabhängig voneinander eine JSON-Reflexion derselben Spezifikation einführen würden. Es könnten einige willkürliche Entscheidungen getroffen werden, z.B. sollten Enum-Werte durch eine Zeichenkette repräsentiert werden (um für den Menschen lesbar zu sein, wie typisches JSON) oder durch ihren Integer-Wert?
Also gibt es eine etablierte Zuordnung, und alle Open-Source-Implementierungen für die Generierung von JSON-Encoder/Decoder aus .proto Spezifikationen?