Maison >développement back-end >Golang >Comment désorganiser les entiers codés en chaîne dans Go ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 00:46:031034parcourir

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 encodé sous forme de chaîne peuvent désormais être désorganisé 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.

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!

Déclaration:
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