Heim >Backend-Entwicklung >Golang >Wie kann ich Protobuf-Erweiterungsfeldnamen in der JSON-Ausgabe anpassen?
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"]; } }
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!