gpt4 book ai didi

java - 在 Java 中使用 Gson 从嵌套对象读取单个值

转载 作者:行者123 更新时间:2023-11-30 05:48:36 26 4
gpt4 key购买 nike

下面是我的 Json。我想使用Gson获取“Details”中“Id”的值

{
"name": "testAutomation-1",
"owner": "TestUSer",
"description": "testAutomation-1",
"subSet": [
"test-audit"
],
"labels": "{\"engagementType\":\"Sx\",\"type\":\"collect\"}",
"createdTime": 1548508294790,
"updatedTime": 1548654725381,
"scheduleDateTime": null,
"timeZone": null,
"jobStatus": "Report-Requested",
"loggedInUser": null,
"Details": [
{
"Status": "Completed",
"Id": "fe1f6b40-216b-11e9-a769-25be4c5889e7"
}
]
}

我使用下面的代码创建了一个 map 。但不知道如何获取该值

Map<String, Object> createmap = new HashMap<String, Object>();
Gson gson = new Gson();
Type type = new TypeToken<Map<String, Object>>(){}.getType();
createmap = gson.fromJson(jsonobj.toString(), type);

最佳答案

假设您需要数组的第一个元素,您可以执行以下操作(知道 DATA 是您提供的 Json 字符串):

Map<String, JsonElement> resultMap;
Gson gson = new Gson();
Type type = new TypeToken<Map<String, JsonElement>>() {}.getType();
JsonElement jsonElement = gson.fromJson(DATA, JsonElement.class);
resultMap = gson.fromJson(jsonElement.toString(), type);

JsonArray details = resultMap.get("Details").getAsJsonArray();
JsonObject recordElement = details.get(0).getAsJsonObject();
System.out.println(recordElement.get("Id").getAsString());

这一切都是以 JsonArray 的形式获取 Details 数组,然后获取 Id 元素的值。

由于您似乎正在处理 UUID,因此您可能会受益于使用:

UUID uuid = UUID.fromString(recordElement.get("Id").getAsString());

关于java - 在 Java 中使用 Gson 从嵌套对象读取单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54401666/

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