Maison >développement back-end >Golang >Comment résoudre l'erreur « caractère invalide » recherche du début de la valeur » dans json.Unmarshal de Golang ?

Comment résoudre l'erreur « caractère invalide » recherche du début de la valeur » dans json.Unmarshal de Golang ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-30 18:10:15299parcourir

How to Resolve the

Erreur "caractère invalide 'ï' recherchant le début de la valeur" lors de l'utilisation de json.Unmarshal

Lors de la tentative d'analyse des données JSON reçues de une requête HTTP utilisant la fonction json.Unmarshal de Golang, l'erreur suivante peut se produire :

"invalid character 'ï' looking for beginning of value"

Cette erreur se produit généralement lorsque la réponse JSON contient un caractère Byte Order Mark (BOM). Une nomenclature identifie l'encodage d'un fichier texte et doit être supprimée avant le décodage.

Pour résoudre ce problème, le caractère BOM peut être supprimé de la réponse JSON à l'aide du code suivant :

body := bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}

Une fois le caractère BOM supprimé, la réponse JSON peut être désorganisée dans une structure de données comme prévu.

Par exemple, le code suivant peut être modifié pour gérer une réponse JSON avec une nomenclature :

body, err := ioutil.ReadAll(response.Body)
defer response.Body.Close()
if err != nil {
    return "", tracerr.Wrap(err)
}

// Remove BOM
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf"))

transTransform = TransformTextResponse{}
err = json.Unmarshal(body, &transTransform)
if err != nil {
   return "", tracerr.Wrap(err)
}

En supprimant le caractère BOM avant d'analyser la réponse JSON, l'erreur sera résolue et la structure des données pourra être désorganisée avec succès.

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