json - 在 Groovy 中获取具有随机名称的单个节点的 JSON 子节点

标签 json groovy jsonslurper

在 Groovy(不是 Grails)中,我想获得这样一个项目的颜色:

{
    "8436": {
        "color": "red",
    }
}

“8436”这个数字是动态的,但始终只有一个。

我不能使用 JsonSlurper 的 json.8436.color 语法,因为数字会被硬编码。

如何获取颜色?

最佳答案

另一种选择,给定:

def jsonStr = '''{
    "8436": {
        "color": "red",
    }
}'''

你可以这样做:

import groovy.json.JsonSlurper

def json = new JsonSlurper().parseText(jsonStr)

def (rootKey, color) = json.findResult { k, v -> [k, v.color] }

assert rootKey == '8436'
assert color == 'red'

关于json - 在 Groovy 中获取具有随机名称的单个节点的 JSON 子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39746846/

相关文章:

json - 使用 Jackson 序列化带有排序键的 JSON

groovy - 使用 Expando 元类将柯里化(Currying)闭包添加为静态属性会丢失默认参数值

javascript - 如何在 JSON 中使用换行符

php - Sendhub API 问题

javascript - http get 请求的 Node json 错误

java - 在 Groovy/Java 中比较两个 XML 字符串/文件

groovy - 如何使用groovy断言json响应内容?

java - Groovy 使用字符串获取 json slurper 对象中的对象

json - JSONException错误Grails

javascript - 是否可以在 Ajax 语句中使用字符串来引用 json 对象?