Maison >développement back-end >Golang >Comment puis-je réaliser un démarshaling JSON sensible à la casse dans Go ?

Comment puis-je réaliser un démarshaling JSON sensible à la casse dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 11:17:02400parcourir

How Can I Achieve Case-Sensitive JSON Unmarshaling in Go?

JSON Unmarshal sensible à la casse : une enquête technique

Dans le domaine du traitement JSON, la fonction json.Unmarshal constitue la pierre angulaire de analyser les données JSON dans les structures Go. Cependant, un dilemme courant survient lorsqu'il s'agit de correspondances insensibles à la casse pendant le processus de démarshaling. Ce problème vient du fait que json.Unmarshal, par défaut, accepte les correspondances exactes et insensibles à la casse entre les clés d'objet JSON et les noms de champs de structure.

Considérez le scénario suivant : vous recevez un objet JSON contenant deux balises. , "e" et "E", et vous souhaitez désorganiser l'objet dans une structure avec uniquement la balise "e". Face à ce défi, vous pourriez être tenté de recourir à une solution de contournement simpliste, comme définir une structure avec à la fois les balises « e » et « E », puis ignorer la balise « E ».

Bien que cette approche puisse atténue temporairement le problème, cela introduit une redondance du code et peut obscurcir la lisibilité de votre programme. Heureusement, il existe une solution plus élégante à ce dilemme sensible à la casse.

Après avoir fouillé dans la documentation officielle du package json, vous découvrez le passage suivant :

"Pour unmarshal JSON dans un struct, Unmarshal fait correspondre les clés d'objet entrantes aux clés utilisées par Marshal (soit le nom du champ struct, soit sa balise), préférant une correspondance exacte mais acceptant également un caractère insensible à la casse. match."

Cette révélation confirme le fait que json.Unmarshal accepte intrinsèquement les deux types de correspondances et ne dispose pas d'un mécanisme pour désactiver le comportement insensible à la casse.

Pour résumer, la bibliothèque json standard dans Go ne prend actuellement pas en charge le démarshaling JSON sensible à la casse. Si vous êtes confronté à cette exigence, vous devez recourir à des méthodes alternatives ou mettre en œuvre vos propres solutions personnalisées.

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