gpt4 book ai didi

JAVA ObjectNode 获取为空

转载 作者:行者123 更新时间:2023-12-02 09:55:56 26 4
gpt4 key购买 nike

我的 @RequestBody ObjectNode objectNode 中的 JSON

{
"script":
{"id":2,"nom":"tes","libelleprerequiss":
[{"id":1,"libelle_prerequis":"Soc devis VAM","produit":{"id":1,"nom":"VAM"},"typologie":{"id":1,"nom":"devis"}}]
},
"libellePrerequis":
{"id":3,"libelle_prerequis":"Soc contrat VAM","produit":{"id":1,"nom":"VAM"},"typologie":{"id":2,"nom":"contrat"}
}
}

当我这样做时:

    String id_script = objectNode.get("script").get("id").asText();
String id_libelleprerequis = objectNode.get("libellePrerequis").get("id").asText();
System.out.println("Script ID = " + id_script + "...");
System.out.println("Libelle Prerequis ID = " + id_libelleprerequis + "...");

我有结果:

Update Script - Script ID = 2...
Update Script - Libelle Prerequis ID = 3...

但是当我这样做时:

String libelleprerequis = objectNode.get("libellePrerequis").asText();
System.out.println("Update Script - Libelle Prerequis = " + libelleprerequis + "...");

我有:

Update Script - Libelle Prerequis = ...

我想恢复我的“LibellePrerequis”以将其集成到我的实体中的脚本中(多对多)

最佳答案

"libellePrerequis" 是一个对象。

asText() 仅当您的节点是一个值时才有效。

您可以使用objectNode.get("libellePrerequis").isValueNode();进行检查

要获取字符串形式的节点对象,您需要使用toString():

objectNode.get("libellePrerequis").toString();

编辑1:

要将节点转换为对象,您需要创建一些代表节点树的对象。

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 中的名称相同,并注意它们的类型。因此,如果对象的结构类似于 json 中的结构,那么对象的名称(LibellTypologieProduit)并不重要。 >.

现在,要将您的 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());

关于JAVA ObjectNode 获取为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com