Définition de la valeur par défaut d'une variable lors de la désérialisation à l'aide de gson
Je suis en train de convertir JSON pour objet Java. Quand une certaine valeur d'une paire est null
il convient de définir avec une certaine valeur par défaut.
Voici mon POJO:
public class Student {
String rollNo;
String name;
String contact;
String school;
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
Exemple d'objet JSON:
{
"rollNo":"123", "name":"Tony", "school":null
}
Donc, si l'école est null
je dois faire cela en une valeur par défaut, comme "school":"XXX"
. Comment puis-je configurer ce avec Gson alors que la désérialisation d'objets?
source d'informationauteur Arun
Vous devez vous connecter pour publier un commentaire.
Si le
null
est dans le JSON, Gson va remplacer les paramètres par défaut vous pouvez définir dans le POJO. Vous pourrait aller à la peine de créer un personnalisé deserializermais que peut-être exagéré dans ce cas.Je pense que le plus simple (et sans doute le mieux à votre cas d'utilisation) chose à faire est l'équivalent de Chargement Différé. Par exemple:
Remarque: Le gros problème avec cette solution est que pour changer les paramètres par Défaut, vous devez modifier le code. Si vous voulez que la valeur par défaut pour être personnalisable, vous devriez aller avec la coutume deserializer en lien ci-dessus.
Je pense que la façon de le faire est d'écrire votre args constructeur de remplir les valeurs par défaut, ou d'utiliser un personnalisé instance créateur. Le deserializer doit alors remplacer les valeurs par défaut pour tous les attributs du JSON en objet désérialisé.
Vous pouvez tout simplement faire une fonction universelle qui vérifie la valeur null