2013-09-29 4 views
0

Je reçois des réponses du serveur qui sont emballées avec quelques informations supplémentaires. Par exemple:Jackson - déballer l'objet

 
{ 
    "response_a" : ..., 
    "some_metadata" : 1234, 
    "more_metadata" : abcd 
} 

     or 

{ 
    "response_b" : [...], 
    "some_metadata" : 1234, 
    "more_metadata" : abcd 
} 

Le « response_x » peut être objet sur mesure, liste ou hashmap, il peut avoir le nom différent selon la demande.

Y a-t-il un moyen de désérialiser simplement le response_x, ou l'obtenir en tant que chaîne en utilisant jackson?

+0

Avez-vous ce nom de propriété « response_x » au cours du processus de désérialisation? –

+0

oui, je le fais. J'ai compris que je pouvais simplement utiliser 'JSONObject.get (" response_x "). ToString()' mais je voudrais vraiment faire ça en utilisant jackson ... –

Répondre

0

Vous pouvez désérialiser ci-dessus JSON pour Map et récupérer la propriété en utilisant la méthode get:

ObjectMapper mapper = new ObjectMapper(); 
MapType mapType = mapper.getTypeFactory().constructMapType(HashMap.class, String.class, Object.class); 
Map<String, Object> result = mapper.readValue(json, mapType); 
Object responseX = result.get("response_x");