Maison > développement back-end > Golang > Comment décoder un JSON avec des champs non primitifs en Protobuf in Go ?

Comment décoder un JSON avec des champs non primitifs en Protobuf in Go ?

DDD
Libérer: 2024-10-28 22:50:30
original
841 Les gens l'ont consulté

How to Decode a JSON with Non-Primitive Fields into Protobuf in Go?

Décodage de JSON en Protobuf avec des champs non primitifs

Le problème se pose lorsque vous essayez de désorganiser un JSON contenant un champ non primitif, comme Données dans ce cas, dans un Protobuf en utilisant la bibliothèque "encoding/json". Le comportement par défaut de la bibliothèque n'est pas capable de gérer correctement ces champs, ce qui les rend nuls.

Utilisation de Protobuf Encoding/Protojson

Pour gérer correctement les non -champs primitifs, vous devez utiliser la bibliothèque google.golang.org/protobuf/encoding/protojson. Cette bibliothèque fournit des fonctions de décodage spécialisées pour les messages Protobuf.

Le code corrigé pour décoder le JSON dans le Protobuf serait :

req := &proto.JobCreateRequest{}
err := protojson.Unmarshal(bytes, req)
Copier après la connexion

Cette approche garantit que le champ Données est désérialisé et initialisé correctement . Il parcourt récursivement la structure JSON et tente d'attribuer des valeurs à tous les champs définis dans le message Protobuf.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal