"libellePrerequis"
это объект.
asText()
работает, только если ваш узел является значением.
Вы можете проверить с помощью objectNode.get("libellePrerequis").isValueNode();
Чтобы получить объект узла в виде строки, вам необходимо использовать toString()
:
objectNode.get("libellePrerequis").toString();
EDIT1:
Чтобы превратить ваш узел в объект, вам нужно создать несколько объектов, которые представляют дерево вашего узла.
public class Libell{
private int id;
private String libelle_prerequis;
private Produit produit;
private Typologie typologie;
//getters, setters
}
public class Typologie{
private int id;
private String nom;
//getters, setters
}
public class Produit{
private int id;
private String nom;
//getters, setters
}
Самое важное - иметь одинаковое имя для атрибутов (id, libelle_prerequis, ...
) как в json
и обратите внимание на их тип.Таким образом, имя объектов (Libell
, Typologie
и Produit
) не имеет значения, если их структура похожа на json
.
Теперь, чтобы сопоставить ваш JSonNode
с объектом, который выможно сделать это:
ObjectMapper objMap = new ObjectMapper();
Libell libell = objMap.convertValue(objectNode.get("libellePrerequis"), Libell.class);
System.out.println(libell.getId());
System.out.println(libell.getProduit().getId());
System.out.println(libell.getTypologie().getId());