comment convertir JSONArray à la Liste de l'Objet à l'aide de chameau-jackson
Vais avoir la Chaîne de tableau json comme suit
{"Compemployes":[
{
"id":1001,
"name":"jhon"
},
{
"id":1002,
"name":"jhon"
}
]}
je veux convertir cette jsonarray à List<Empolyee>
. pour cela, j'avais ajouté le maven dependency "camel-jackson
" et aussi écrire la classe pojo pour l'employé . mais lorsque j'essaie d'exécuter mon code ci-dessous
ObjectMapper mapper = new ObjectMapper();
List<Employe> list = mapper.readValue(jsonString, TypeFactory.collectionType(List.class, Employe.class));
suis l'exception suivante.
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
at [Source: java.io.StringReader@43caa144; line: 1, column: 1]
quelqu'un peut-pls dire ce qui me manque ou de faire anyting mal
- Sa me donne exception si j'ai essayé d'utiliser la dépendance de "org.json".
- Je ne suis pas sûr si cela va fonctionner, mais vous pouvez essayer de configurer un objet de mapper comme ceci: mappeur.configurer(DeserializationConfig.Fonctionnalité.UNWRAP_ROOT_VALUE, true)
Vous devez vous connecter pour publier un commentaire.
Le problème n'est pas dans votre code, mais dans votre json:
cela représente un objet qui contient une propriété Compemployes qui est une liste de
De l'employé. Dans ce cas, vous devez créer cet objet comme:
et désérialiser le json il suffit de faire:
Si votre json représente directement une liste d'employés, il devrait ressembler à:
Dernière remarque:
TypeFactory.collectionType
est obsolète vous devez maintenant utiliser quelque chose comme:J'ai eu la même réponse json en provenance du client. Créé une liste principale de la classe, et une classe POJO.
Votre arr ressemblerait à: [
{
"id":1001,
"nom":"jhon"
},
{
"id":1002,
"nom":"jhon"
}
]
Vous pouvez utiliser:
pour obtenir les objets à l'intérieur de la matrice.
J'ai aussi été confronté au problème similaire avec JSON format de sortie. Ce code a fonctionné pour moi avec le ci-dessus au format JSON.