Maison > développement back-end > Golang > Comment décomposer les chaînes JSON en valeurs Int64 Go ?

Comment décomposer les chaînes JSON en valeurs Int64 Go ?

Barbara Streisand
Libérer: 2024-11-14 17:16:02
original
532 Les gens l'ont consulté

How to Unmarshal JSON Strings into Int64 Go Values?

Démarshaling des chaînes JSON dans des valeurs Go Int64

Les programmeurs Go rencontrent souvent le message d'erreur "json : impossible de démarshaler une chaîne dans une valeur Go de type int64" lorsqu'ils tentent de démarshaler JSON. données. Cette erreur se produit lorsque le champ JSON correspondant à un champ de structure Go de type int64 contient une valeur de chaîne.

Aperçu du problème

Considérez la structure Go suivante :

type Survey struct {
    Id     int64  `json:"id,omitempty"`
    Name   string `json:"name,omitempty"`
}
Copier après la connexion

Si vous marshalez cette structure en JSON et modifiez le champ "id" dans un client JavaScript, il peut envoyer une chaîne JSON comme celle-ci :

{"id": "1"}
Copier après la connexion

où le champ "id" est maintenant une chaîne.

Lorsque vous essayez de désorganiser cette chaîne JSON dans la structure Go, vous rencontrerez l'erreur susmentionnée.

Solution

Pour gérer cette situation, vous pouvez spécifier l'option ,string dans votre balise JSON, comme indiqué ci-dessous :

type Survey struct {
    Id   int64  `json:"id,string,omitempty"`
    Name   string `json:"name,omitempty"`
}
Copier après la connexion

Cela permet au champ "id" d'être désorganisé en tant que int64 même si la valeur JSON est une chaîne.

Remarque

Il est important de noter que spécifier omitEmpty pour les champs marqués par une chaîne n'affecte que le processus de marshaling, pas le processus de démarshaling. Cela signifie que vous ne pouvez pas désorganiser une chaîne vide dans un champ int64, même si elle est étiquetée avec ,string,omitempty.

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