Anpassen von JSON-Namen für Protobuf-Erweiterungen
In einem Szenario, in dem einer Nachricht eine Erweiterungsnachricht hinzugefügt wird, ist es wünschenswert, einen benutzerdefinierten JSON anzugeben Name für die Erweiterungsnachricht anstelle des Standardformats [message.extension_message_name]. Dieser Artikel befasst sich mit diesem Bedarf und bietet eine Problemumgehung.
Wie im Problem erwähnt, wird der JSON-Name für eine Erweiterungsnachricht in Protobuf automatisch auf [desc.Name] festgelegt. Allerdings ist diese Namenskonvention in einigen Fällen möglicherweise nicht geeignet, insbesondere wenn die Erweiterungsnachricht an anderer Stelle in der API verwendet wird und der Standardname zu Verwirrung führen kann.
Um dieses Problem zu beheben, liegt die Lösung in der Verwendung die Feldoption json_name. Gemäß dem Protobuf-Sprachleitfaden werden Nachrichtenfeldnamen in Kleinbuchstaben umgewandelt und zu JSON-Objektschlüsseln. Durch Angabe der Feldoption „json_name“ können Sie das Standardverhalten überschreiben und einen benutzerdefinierten JSON-Namen angeben.
Betrachten Sie beispielsweise die folgende Protobuf-Definition:
message TestMessage { string myField = 1 [json_name="my_special_field_name"]; }
Mit dieser Definition, wenn die TestMessage wird an JSON gemarshallt, myField wird im JSON als my_special_field_name angezeigt Ausgabe,而不是默认的[TestMessage.myField].
Mit dieser Problemumgehung können Entwickler die JSON-Namen für ihre Erweiterungsnachrichten anpassen, um sie besser an die spezifischen Anforderungen ihrer Anwendung anzupassen und potenzielle Verwirrung zu reduzieren.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Namen für Protobuf-Erweiterungen anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!