Heim > Backend-Entwicklung > Golang > Wie kann ich Protobuf-Erweiterungsfeldnamen in der JSON-Ausgabe anpassen?

Wie kann ich Protobuf-Erweiterungsfeldnamen in der JSON-Ausgabe anpassen?

Patricia Arquette
Freigeben: 2024-11-26 15:17:13
Original
801 Leute haben es durchsucht

How Can I Customize Protobuf Extension Field Names in JSON Output?

Anpassen von Protobuf-Erweiterungsfeldnamen in JSON

Beim Erweitern einer Nachricht in Protokollpuffern (Protobuf) und beim Marshallen als JSON wird der Feldname verwendet für die erweiterte Nachricht erscheint normalerweise in Klammern mit dem Präfix „message.extension_message_name“. Dies kann unpraktisch und verwirrend sein, insbesondere wenn die Erweiterungsnachricht an anderer Stelle in der API mit einem anderen Namen verwendet wird.

Das Problem ergibt sich aus der Logik in der jsonpb-Bibliothek von Protobuf, wo der JSON-Name als „[%“ festgelegt ist. s]" desc.Name, wobei desc.Name den nicht qualifizierten Erweiterungsfeldnamen darstellt.

Um diese Einschränkung zu umgehen, schlägt der Sprachführer die Verwendung von vor Feldoption „json_name“, um den Standard-JSON-Namen zu überschreiben. Durch Hinzufügen von json_name = „custom_name“ zum Erweiterungsfeld wird das Feld mit dem angegebenen benutzerdefinierten Namen in JSON serialisiert:

message TestMessage {
    extend TestMessage {
        ExtensionPlacement extension_message_name = 10;
        String messageField = 10 [json_name = "customFieldName"];
    }
}
Nach dem Login kopieren

Mit dieser Änderung wird das erweiterte Feld in JSON als „customFieldName“ angezeigt gewünscht.

Das obige ist der detaillierte Inhalt vonWie kann ich Protobuf-Erweiterungsfeldnamen in der JSON-Ausgabe anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage