Je dois lire un entier et double comme dans la propriété String mais GSON traite chaque int comme double (oui, je comprends qu'il s'agit de la norme JSON).GSON traite l'entier comme un double
Ainsi, par exemple, j'ai classe:
public class MyObject {
String value;
}
Dans certains cas, j'ai ce JSON - {"value": 1}
et parfois - {"value": 2.4}
.
Et je dois afficher ces valeurs telles quelles, mais la première valeur sera lue comme 1.0
.
J'ai essayé d'utiliser JsonDeserializer
et TypeAdapter
, tous deux ont une méthode comme getAsString
et tous les deux convertissent d'abord la valeur en double, puis la retournent.
Comment la méthode ressemble à JsonPrimitive
:
@Override
public String getAsString() {
if (isNumber()) {
return getAsNumber().toString();
} else if (isBoolean()) {
return getAsBooleanWrapper().toString();
} else {
return (String) value;
}
}
Vous pouvez voir ici isNumber
vérifier.
Alors est-il possible de résoudre ce problème en quelque sorte?
Je dois montrer zéros si elle vient de côté serveur. S'il vient sans zéros, je dois afficher sans zéros. C'est pourquoi j'ai dit que je voulais laisser des valeurs car elles venaient du serveur. – dewarder
@Google j'ai mal compris le problème, je viens de mettre à jour ci-dessus un –
Mais le problème ici que je ne peux pas obtenir "1", pas "1.0" en utilisant Gson. Gson convertit automatiquement "1" en "1.0" – dewarder