"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment désorganiser les entiers codés en chaîne dans Go ?

Comment désorganiser les entiers codés en chaîne dans Go ?

Publié le 2024-11-12
Parcourir:662

How to Unmarshal String-encoded Integers in Go?

Désagrégation des entiers codés en chaîne dans Go

Lorsque vous tentez de désorganiser JSON avec des valeurs de chaîne dans un champ entier, vous pouvez rencontrer l'erreur : "json : impossible de transformer la chaîne en valeur Go de type int64." En effet, le démarshaling JSON suppose par défaut que les types numériques, tels que int64, doivent contenir des caractères numériques.

Problème :
Une structure Go définissant un champ int64 reçoit du JSON avec le correspondant champ codé sous forme de chaîne. Cette inadéquation dans les types de données entraîne l'échec du processus de démarshalage.

Solution :
La solution recommandée consiste à utiliser la balise ",string" dans la balise struct json pour le champ entier. . Cela demande au processus de démarshalage d'accepter les valeurs de type chaîne :

type tySurvey struct {
   Id   int64  `json:"id,string,omitempty"`
   Name string `json:"name,omitempty"`
}

Implémentation :
Avec la structure modifiée, les données JSON avec un champ d'identification codé sous forme de chaîne peuvent désormais être désorganisées avec succès dans un objet Go de type tySurvey.

Remarque :
Il est important de se rappeler que spécifier omitempty dans la balise ne permettra pas de décoder la chaîne vide. omitempty est utilisé exclusivement à des fins de codage.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3