Maison > développement back-end > Golang > Comment puis-je personnaliser les noms JSON pour les extensions Protobuf ?

Comment puis-je personnaliser les noms JSON pour les extensions Protobuf ?

Patricia Arquette
Libérer: 2024-11-28 08:51:11
original
904 Les gens l'ont consulté

How Can I Customize JSON Names for Protobuf Extensions?

Personnalisation des noms JSON pour les extensions Protobuf

Dans un scénario où un message d'extension est ajouté à un message, il est souhaitable de spécifier un JSON personnalisé nom du message d'extension plutôt que le format par défaut de [message.extension_message_name]. Cet article répond à ce besoin et propose une solution de contournement.

Comme mentionné dans le problème, le nom JSON d'un message d'extension dans Protobuf est automatiquement défini sur [desc.Name]. Cependant, cette convention de dénomination peut ne pas convenir dans certains cas, notamment lorsque le message d'extension est utilisé ailleurs dans l'API et que le fait d'avoir le nom par défaut peut prêter à confusion.

Pour résoudre ce problème, la solution réside dans l'utilisation l'option de champ json_name. Selon le guide linguistique Protobuf, les noms de champs de message sont convertis en minuscules camel et deviennent des clés d'objet JSON. En spécifiant l'option de champ json_name, vous pouvez remplacer le comportement par défaut et spécifier un nom JSON personnalisé.

Par exemple, considérons la définition Protobuf suivante :

message TestMessage {
    string myField = 1 [json_name="my_special_field_name"];
}
Copier après la connexion

Avec cette définition, lorsque le TestMessage est marshalé en JSON, myField apparaîtra sous le nom my_special_field_name dans le JSON sortie,而不是默认的[TestMessage.myField].

Cette solution de contournement permet aux développeurs de personnaliser les noms JSON de leurs messages d'extension, les rendant ainsi plus adaptés aux besoins spécifiques de leur application et réduisant la confusion potentielle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal