Maison > développement back-end > Golang > le corps du texte

Comment résoudre le problème de champ de données nul lors de la désorganisation de JSON vers Protobuf Struct ?

Barbara Streisand
Libérer: 2024-10-28 07:30:02
original
465 Les gens l'ont consulté

How to Resolve Null Data Field Issue When Unmarshaling JSON to Protobuf Struct?

Désagrégation de JSON dans un champ de structure Protobuf : résolution du problème de champ de données nul

Lors d'une tentative de désorganisation de données JSON dans un champ de structure Protobuf de type Google .protobuf.Value, vous pouvez rencontrer une situation où le champ Données dans la structure protobuf est défini sur zéro. Ce problème survient en raison de l'incompatibilité entre le package encoding/json de la bibliothèque standard et les exigences spécifiques des champs Protobuf Value.

Pour résoudre ce problème, une bibliothèque plus adaptée doit être utilisée pour le démarshaling. La bibliothèque protobuf de Google offre une approche plus robuste et personnalisée pour gérer les types de données spécifiques à protobuf. Voici le code corrigé à l'aide de protojson.Unmarshal :

<code class="go">import (
    "google.golang.org/protobuf/encoding/protojson"
    "google.golang.org/protobuf/proto"
    "io"
)

req := &proto.JobCreateRequest{}
bytes, err := io.ReadAll(r.Body)
if err != nil {
    return err
}
err = protojson.Unmarshal(bytes, req)
if err != nil {
    return err
}</code>
Copier après la connexion

En tirant parti de protojson.Unmarshal au lieu du package encoding/json, vous pouvez convertir efficacement les données JSON en structure protobuf, en vous assurant que le champ Données est correctement peuplé. La structure JobCreateRequest résultante contiendra les valeurs attendues pour les champs de nom, de description et de données.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!