J’essaie de désérialiser un object JSON en un haricot Java. Le principal problème auquel je suis confronté est que j’aimerais traiter l’ object
de champ de la chaîne json comme une chaîne simple, même s’il contient un object json potentiellement correct. La structure de JSON est comme ceci:
{ "type":"user", "object":{ "id":"1", ...} }
Comment puis-je dire à gson d’ignorer la valeur de l’ object
afin qu’il ne soit pas désérialisé en object? J’aimerais seulement qu’il soit mappé sur un champ Ssortingng
simple dans mon bean afin de pouvoir disposer d’une désérialisation appropriée, une fois que j’ai obtenu le type du champ type
.
Il suffit de le déclarer comme de type JsonObject
class ExampleJsonModel { @SerializedName("type") public Ssortingng type; @SerializedName("object") public JsonObject object; }
Je ne sais pas si votre problème est résolu. J’ai rencontré une question similaire et voici comment j’ai résolu le problème:
JsonDeserializer vous permet de créer votre propre adaptateur pour désérialiser ce **:
class JavaBeanDeserializer implements JsonDeserializer() { public JavaBeanObject fromJson(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { // return JavaBeanObject built using your logic. }
Vous devez enregistrer JavaBeanDeserializer en object Gson lors de sa construction:
Gson gson = new GsonBuilder().registerTypeAdapter(JavaBeanObject.class, new JavaBeanDeserializer()).create();