désérialiser un champ json en chaîne avec gson

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();