【发布时间】:2022-01-12 14:14:44
【问题描述】:
在下面的地图中,我如何知道 key3 是否存在而无需通过暴力 for 循环并检查每个内部地图。 鉴于所有键都是唯一的,我们是否有任何库函数可以做到这一点?
"map": {
"key1": "value1",
"innerMap": {
"key2": "value2",
"innerMap2": {
"key3": "value3"
}
}
}
【问题讨论】:
-
如果不到处寻找,就无法检查 key3 的不存在。如果这听起来太粗暴,那么您可以使用
.contains("\"key3\":")'检查此 json 的字符串表示形式 -
但请注意,对 JSON(或其他任何内容)进行字符串匹配可能会很脆弱。而且,将嵌套的映射结构转换为字符串,以便您可以使用
contains进行搜索,这将比对映射树的“蛮力”搜索更昂贵。 -
@StephenC 非常正确,除非json字符串是原始输入,这意味着没有必要将任何东西转换为json。
-
它是一个 HashMap。根据反对票,我想我会开始处理 for 循环 XD。
标签: java dictionary