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!