gpt4 book ai didi

java - 从 Java 中的嵌套映射中删除键

转载 作者:行者123 更新时间:2023-12-02 00:59:26 24 4
gpt4 key购买 nike

我有一个 map 对象,其值为:

{Name={
Id=9999,
status=OK,
Idn={
source=TEST,
value=123,
TS=2018-11-14T18:10:33.998Z
}
}}

我必须从中删除 value=123 部分,以便我的最终 map 如下所示:

{Name={
Id=9999,
status=OK,
Idn={
source=TEST,
TS=2018-11-14T18:10:33.998Z
}
}}

.remove(key) 部分适用于 "Name" 标记,但我无法访问嵌套的 Name.Idn.value 并将其删除。

编辑后的代码:我的 map 由 mongoTemplate.findOne()

填充
Map<String, Map<String, Object>> response    
Query query = new Query();
Criteria criteria = Criteria.where("Name.Idn.value").is(123);
query.addCriteria(criteria).fields().exclude("_id");
response = mongoTemplate().findOne(query, Map.class, "dummy_col");

从响应中,发送回响应时,Name.Idn.value 将被删除。

最佳答案

我猜你有一个Map<String, Object> map为了能够保存不同类型的值,因此您需要将第一个值设置为 Map<String, Map>能够继续你的道路

((Map<String, Map<String, Object>>) map.get("Name")).get("idn").remove("source"); 
<小时/>

事实上你有一个Map<String, Map<String, Object>> map ,所以你知道第一个get()将返回 Map ,这是您需要转换的第二个

((Map<String, Object>) map.get("Name").get("idn")).remove("source");

关于java - 从 Java 中的嵌套映射中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60900032/

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