在 Groovy 中使用字符串访问地图的地图元素

2024-01-07

鉴于我有一张这样的地图:

def myMap = [ b : [ c:"X" ] ]

还有一根绳子

def key = 'b.c'

我想查看使用密钥获取值“X”的选项。

我自己想出了两种方法来实现这一目标,但我对这些解决方案不太满意:

 1) Eval.me("theMap", myMap, "theMap.$key")
 2) mayMap."$key.split('\\.')[0]"."$key.split('\\.')[1]"

有人有更好的方法在 Groovy 中做到这一点吗?


一个方便的方法是使用配置对象 https://docs.groovy-lang.org/latest/html/gapi/groovy/util/ConfigObject.html它实现了 Map.

def myMap = [b:[c:'X', d: 'Y'], a:[n:[m:[x:'Y']]]] as ConfigObject
def props = myMap.toProperties()

assert props['b.c'] == 'X'
assert props.'b.c' == 'X'
assert props.'a.n.m.x' == 'Y'

Pros:

  • 不再分裂。
  • 不再评价。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Groovy 中使用字符串访问地图的地图元素 的相关文章

  • 在没有 Grails 的普通 Spring MVC 中使用 GSP 视图

    我想在普通的旧 Spring MVC 应用程序中使用 GSP 视图而不是 JSP JSTL 视图 我在 web xml 中添加了一个 groovy servlet TemplateServlet 如下所示
  • 使用 ggplot 根据给定变量对状态着色

    我绘制了地图如下 我需要帮助添加一些额外的层 我知道有很多方法可以做到这一点 但作为 ggplot 的新手 我对此真的一无所知 任何帮助将不胜感激 谢谢 I have used the code shp state1 lt readShap
  • 创建目录中多个文本文件的字数统计字典

    我在 word count directory 函数中使用 build dict 函数来创建目录中三个文件的字数统计字典 我想创建三个字典 每个文件一次一个 并更新以前的字典 我的代码创建一个字典 word count 它同时组合所有三个字
  • 如何让 Jenkins 2.0 在与结帐相同的目录中执行 sh 命令?

    这是我的 Jenkins 2 x 管道 node master stage Checkout checkout scm stage Build Pex sh build sh 当我运行此管道时 签出会按预期将代码放入工作区 但是它并没有期望
  • JavaScript 将嵌套 Map 转换为对象

    我想将 es6 嵌套 Map 转换为对象 我尝试了这段代码 mapToObjectRec m let lo for let k v of m if v instanceof Map lo k this mapToObjectRec v el
  • 如何在 Eclipse RCP 项目中使用 groovy?

    我有一个 Eclipse RCP 项目 我想在其中使用 Groovy 我尝试做的是 1 添加 Groovy Nature 2 在 src 文件夹下创建Groovy文件3 从 View 的createPartControl 方法调用groov
  • 使用 JSON 和字典在 Python 中处理错误

    我目前有一个 Python 2 7 脚本 可以抓取 Facebook 并从每个页面捕获一些 JSON 数据 JSON 数据包含个人信息 JSON 数据的示例如下 id 4 name Mark Zuckerberg first name Ma
  • 使用转置以完全外连接样式合并列表

    我正在尝试返回一个加入列表 但连接必须像数据库完全外连接一样 例如 给出以下内容 def x a 1 b 2 a 1 b 3 a 2 b 4 a 3 b 5 def y f 10 b 2 g 7 f 100 b 3 g 8 f 20 b 4
  • 将查询字符串字典(或关联数组)转换为字典[重复]

    这个问题在这里已经有答案了 我正在尝试接受以下形式的查询字符串 param key1 value1 param key2 value2 并将其转换为 C MVC 4 中的字典 这在 PHP 中很简单 但我还没有找到任何在 C 中重现此操作的
  • 在 mule 中使用 groovy 表达式来限制 IP

    我在 mule 中使用 cxf 创建了一个代理服务 我的 mule 版本是 3 3 0 CE 现在 我想在使用代理服务创建的 wsdl 中添加限制 我的限制不应允许他们看到我的 wsdl 的每个 IP 为此 我找到了 Groovy 表达式和
  • (令人惊讶的是)python dict“has_key”比“in”更快

    从流行的信息以及在net stackoverflow上搜索来看 在python字典中查找键时 in 似乎比 has key 更快 然而 我最近的经历却恰恰相反 我不知道为什么会这样 考虑以下形式的代码 for f in F if A in
  • 在Python中将字符串转换为字典或列表?

    在Python中将此字符串转换为列表或字典 u f i r s t n a m e u j o h n u l a s t n a m e u s m i t h u a g e 2 0 u m o b
  • 如何仅通过一次映射查找来增加给定键的值?

    假设我有一张地图 var inventory mutableMapOf apples to 1 oranges to 2 我想将苹果的数量增加一个 但这不起作用 inventory apples Error 9 4 Variable exp
  • Objective-C字典是一个有序的容器吗?

    如标题所示 当我将元素插入到 Objective C 中的字典中 按顺序 k1 k2 k3 时 是否有任何保证 当我像这样枚举它时 for k in dictionary output the k value 它会以相同的顺序显示吗 No
  • 如何从詹金斯管道获取所有参数(参数化构建)?

    我正在较新版本的 jenkins 中构建一个参数化管道作业 在较旧版本的 jenkins 中 我使用 getbinding getVariables 来检索所有参数 但较新的版本它返回空值 如何在新版本的詹金斯中检索参数 全部 您可以使用
  • 我可以在 Groovy 中编写注释吗?

    我知道我可以在 Groovy 中使用注释来注释我的类 但是我可以在 Groovy 中编写注释本身吗 而不是仅使用用 Java 编写的注释 如果有 从哪个版本开始 您可以在 Groovy 中定义注释 查看更多 http docs groovy
  • Python 中字典的合并层次结构

    我有两本词典 而我想做的事情有点奇怪 基本上 我想合并它们 这很简单 但它们是字典的层次结构 我想以这样的方式合并它们 如果字典中的项目本身就是字典并且存在于两者中 我也想合并这些字典 如果它不是字典 我希望第二个字典中的值覆盖第一个字典中
  • 如何从文件中读取两行并在 for 循环中创建动态键,后续

    这个问题紧接着所讨论的问题 如何从文件中读取两行并在 for 循环中创建动态键 https stackoverflow com q 41929351 868546 但是 问题的本质已经发展到我想要解决的某种复杂性 下面是我的数据结构 用空格
  • @NonCPS 在 Jenkins 管道脚本中的作用是什么

    我在詹金斯中有一个管道脚本 我曾经遇到过这个异常 org jenkinsci plugins scriptsecurity sandbox RejectedAccessException 不允许脚本使用 groovy json JsonSl
  • 相当于字典的数据结构?

    我正在使用 JavaScript 工作 希望保留一份设置的公里 英里 小时近似值列表 我无法以编程方式进行转换 我正在使用需要某些值的外部 API 因此它确实必须是等效的字典 目前我正在使用一个对象 var KM MPH 10 16 12

随机推荐