Pendant le processus de désérialisation JSON (Unmarshal) à l'aide du langage Go, nous pouvons parfois rencontrer des champs d'erreur qui ne peuvent pas être traités. Ces champs d'erreur peuvent provoquer l'arrêt du programme, affectant l'exécution normale du code. Alors, existe-t-il un moyen d'ignorer ces champs d'erreur pendant le processus Unmarshal ? La réponse est oui. Cet article vous présentera comment utiliser certaines techniques du langage Go pour ignorer les champs d'erreur rencontrés lors d'Unmarshal. Continuons la lecture.
J'utilise json.Unmarshal(body, outputStruct)
pour convertir un tableau d'octets en structure. Des erreurs peuvent survenir lors du déclassement.
Par exemple, la structure est :
type Item struct { Price float64 `json:"price"` Quantity int `json:"quantity"` }
Si je passe quantity
comme valeur flottante au lieu d'un entier, cela génère une erreur. Je veux savoir comment désorganiser uniquement les champs valides et ignorer les champs contenant des erreurs ?
Donc, si je désorganise un json :
{ price: 10, quantity: 2.5 }
Je veux juste obtenir la valeur price
dans la structure mais laisser la quantité comme valeur initiale par défaut.
Vous ne pouvez pas.
Si votre JSON contient des flottants, vous ne pouvez tout simplement pas les transformer en entiers. Vous devez :
"-"
) Quantity
, pour qu'il n'échoue pas et effectuez seulement le deuxième démarchage de la Quantité (la nouvelle structure) et ignorez l'erreur. 2 est la « meilleure » façon, mais je ne sais pas quelle est la logique derrière « sauter les champs du mauvais type » ? Si la quantité est de 2,5, quelle sera la valeur de la quantité ? 0 ? Pourquoi?
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!