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"]; }
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!