gpt4 book ai didi

java - 快速解析Java中与数组混合的深层json对象

转载 作者:行者123 更新时间:2023-12-01 08:48:14 25 4
gpt4 key购买 nike

我想知道像这样将一些 JSON 快速解释为 Java 数组是否很快,或者使用 Jackson 等东西是否更好?

假设我正在解析这样的 JSON 对象:

{ "item1": "item",
"roles": [
{ "roleName": "NormalUser" }
],
"type": "worker"
}

然后我这里有一些 Java 代码(响应变量 = 来自 RestTemplate 的 ResponseEntity):

    logger.info("parsing role...");
HashMap<String, Object> jsonBody = response.getBody();

if(jsonBody.containsKey("roles")){
@SuppressWarnings("unchecked")
List<HashMap<String, Object>> roles = (List<HashMap<String, Object>>)jsonBody.get("roles");

logger.info("Cast Hashmap, now interpreting...");
for (HashMap<String, Object> role : roles) {
logger.info("Found role: " + role.toString());
String assignedRole = "";
if(role.containsKey("role")){
assignedRole = (String) role.get("roleName");
};
this.roleAssignments.add(assignedRole);

logger.info("Assigning role: {}", assignedRole);
}
}

最佳答案

您可以尝试JsonPath

例如

String content="some json";
List<String> assignedRoles = JsonPath.read(content, "$.roles[*].roleName");
this.roleAssignments.addAll(assignedRoles);

关于java - 快速解析Java中与数组混合的深层json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42549315/

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