Faire Jackson interpréter seul objet JSON sous forme de tableau avec un élément
Est-il un moyen de faire de Jackson interpréter seul objet JSON comme un tableau avec un seul élément, et vice-versa?
Exemple, j'ai 2 légèrement différents formats JSON, j'ai besoin des deux pour carte à même objet Java:
Format UN (tableau JSON avec un seul élément):
points : [ {
date : 2013-05-11
value : 123
}]
Format B (objet JSON, oui, je sais, il semble "mal" mais c'est ce que je me suis donné):
points : {
date : 2013-05-11
value : 123
}
Cible Java objet que les deux ci-dessus devraient se convertir à:
//Data.java
public List<Point> points;
//other members omitted
//Point.java
class Point {
public String date;
public int value;
}
Actuellement, seulement Un va analyser correctement les Données. Je veux éviter directement d'interférer avec le JSON lui-même. Est-il une configuration à Jackson je peux trafiquer, afin de le faire accepter B ?
Vous devez vous connecter pour publier un commentaire.
Essayer avec
DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY
- il doit travailler pour vous.Exemple:
Jackson
de la bibliothèque au moins la version2.x.x
.La Jackson 1.x-version compatible utilise
DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY
. Si la réponse ci-dessus devient:Peut résoudre le problème ci-dessus par le présent code est donné ci-dessous, cela fonctionne
"InventoryParser" est une Classe POJO.
"des produits.get(j)" est la Chaîne JSON.