"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je faire la différence entre les champs vides et non spécifiés lors du non-remise de JSON dans Go?

Comment puis-je faire la différence entre les champs vides et non spécifiés lors du non-remise de JSON dans Go?

Publié le 2025-03-23
Parcourir:416

How Can I Differentiate Between Void and Unspecified Fields When Unmarshaling JSON in Go?

Reconnaître les champs void et non spécifiés pendant JSON Unmarshaling dans Go

dans JSON, il peut être difficile de différencier les valeurs vides et non spécifiées lors de la non-mise en œuvre de données dans GO. JSON:

[ {"Name": "a", "description": "monotremata"}, {"Name": "b"}, {"Name": "C", "Description": ""} ]

[
  {"Name": "A", "Description": "Monotremata"},
  {"Name": "B"},
  {"Name": "C", "Description": ""}
]

Type Catégorie struct { Chaîne de noms Description String }

type Category struct {
  Name        string
  Description string
}

[{name: a description: monotremata} {name: b Description:} {name: c Description:}]

[{Name:A Description:Monotremata} {Name:B Description:} {Name:C Description:}]

pour différencier ces cas, une approche consiste à utiliser des pointeurs pour les champs facultatifs. En modifiant le type de description en un pointeur, nous pouvons distinguer une valeur de chaîne vide et une valeur nil (indiquant un champ non spécifié):

Type Catégorie Struct { Chaîne de noms Description * chaîne }

type Category struct {
  Name        string
  Description *string
}

[{name: a description: 0x1050c150} {name: b Description: } {name: c Description: 0x1050c158}]

[{Name:A Description:0x1050c150} {Name:B Description:} {Name:C Description:0x1050c158}]
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3