[Golang] Je veux ajouter omitempty à la balise json du champ de type int de la structure afin qu'il soit ignoré si 0 est entré.

introduction

En golang, je veux ignorer json lorsque la valeur du champ de type int de la structure est 0.

En d'autres termes, si vous spécifiez «omitempty» dans la balise json d'un champ de type int et que «0» est entré dans la valeur de ce champ, vous voulez l'ignorer.

** * Une addition ** ** Est-il en fait plus approprié de dire «nul» que «ignorer»? **

omitempty

J'ai compris comment ignorer json lorsque le champ de structure est vide

type User struct {
  Name string `json:"name, omitempty"`
  Age  int64  `json:"age, omitempty"`
}

Cependant, dans «omitempty», le type numérique ne peut pas être ignoré même si «0» est entré.

Solution

Par conséquent, si vous souhaitez utiliser un champ numérique comme pointeur et l'ignorer, vous pouvez le résoudre en mettant nil dans le pointeur.


//Structure utilisateur
type User struct {
  Name string `json:"name, omitempty"`
  Age  *int64 `json:"age, omitempty"`
}

//Valeur à mapper à la structure
testName := "Alice"
testAge := 20

var age *int64
if age > 0 {
  age = &testAge
} else {
  age = nil
}

user := User {
  Name: testName,
  Age:  age,
}

Si vous faites ce qui précède, lorsque vous créez json.Marshal (user) '', ~~ Si testAgevaut 0, le champ `ʻAge de la structure` ʻUserest ignoré, S'il est supérieur à 0 '', il n'est pas ignoré. ~~ Si testAge vaut 0, alors json sera "age": null. Lorsqu'il est supérieur à 0 '', il devient "âge": 20`` et ainsi de suite.

référence

Recommended Posts

[Golang] Je veux ajouter omitempty à la balise json du champ de type int de la structure afin qu'il soit ignoré si 0 est entré.
Je souhaite générer une sortie lors de la conversion de la valeur du type (par exemple, datetime) qui n'est pas pris en charge lors de la sortie de json avec python
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.
Je veux initialiser si la valeur est vide (python)
Je veux connaître la légende du monde des technologies informatiques
J'ai essayé de l'étendre pour que la base de données puisse être utilisée avec le logiciel d'analyse de Wiire
Je souhaite recevoir le fichier de configuration et vérifier si le fichier JSON généré par jinja2 est un JSON valide
Je ne veux pas l'admettre ... Représentation dynamique du système de Neural Network
Je n'ai pas compris le comportement d'argsort de numpy, donc je vais le résumer
Je souhaite lire le CSV ligne par ligne lors de la conversion du type de champ (tout en affichant la barre de progression) et le traiter.