Jackson JsonNode tapé Collection
Quelle est la bonne façon de convertir un Jackson JsonNode
à java collection?
Si c'était une chaîne json je pourrais utiliser ObjectMapper.readValue(String, TypeReference)
mais pour un JsonNode
les seules options sont ObjectMapper.treeToValue(TreeNode, Class)
qui ne serait pas donner une tapée de collection, ou de ObjectMapper.convertValue(Object, JavaType)
qui se sent mal à cause de son acceptation de toute POJO pour la conversion.
Est-il une autre "bonne" façon ou est-ce l'un de ces?
Vous devez vous connecter pour publier un commentaire.
Acquérir une
ObjectReader
avecObjectMapper#readerFor(TypeReference)
à l'aide d'unTypeReference
décrivant le tapé de la collection que vous souhaitez. Ensuite, utilisezObjectReader#readValue(JsonNode)
pour analyser lesJsonNode
(sans doute unArrayNode
).Par exemple, pour obtenir un
List<String>
d'un tableau JSON contenant uniquement des chaînes JSONLa ObjectMapper.convertValue() fonction est pratique et le type de courant. Il peut effectuer un large éventail de conversions entre les nœuds de l'arborescence et des types Java/collections, et vice-versa.
Un exemple de comment vous pourriez l'utiliser: