gpt4 book ai didi

JSON 到 Groovy 与 JsonSlurper 和未知 "string"

转载 作者:行者123 更新时间:2023-12-04 10:09:55 27 4
gpt4 key购买 nike

我正在编写一个 Grails/Groovy 应用程序,我在 中有一个带有“字符串”名称的 JSON 对象( grommet 小部件 )参数 可以改变的成员。也就是说,下次可能是极致变焦 .这是JSON:

def jx = """{ 
"job": "42",
"params": {
"grommet": {"name": "x", "data": "y"},
"widget": { "name": "a", "data": "b"}
}
}"""

我想弄清楚如何获取字符串 索环 .到目前为止的代码:
def dalist = new JsonSlurper().parseText(jx)
println dalist.job // Gives: 42
println dalist.params // Gives: [grommet:[name:x, data:y], widget:[name:a, data:b]]
println dalist.params[0] // Gives: null

知道如何获取字符串 索环 ? Iama 会继续用我的头撞墙。

最佳答案

params JSON 对象上的键与 JSON 对象相关联,而不是数组,因此您无法通过索引访问它。 JsonSlurper 将 JSON 对象映射到 Groovy Maps,因此您可以访问 params通过它的键,即字符串,例如dalist.params.grommet ,这将为您提供 map [name: 'x', data: 'y'] .

访问 params 上的 key 你可以做dalist.params.keySet() ,这将为您提供列表 ['grommet', 'widget'] .如果您有兴趣只知道 params键,这应该可以解决问题。如果您需要获取 'grommet'出于某种原因字符串,您可以通过访问该列表中的第一个元素来实现,即 dalist.params.keySet()[0] ,但我不知道你为什么想知道那个。而且我不确定是否可以保证该 map 的第一个键始终是 'grommet' ,因为 JSON 对象在规范中是无序的(来自 json.org:一个对象是一组无序的名称/值对),但是,反过来,Groovy 映射是有序的(默认实现是 LinkedHashMap)......所以我会假设在将 JSON 解析为 Groovy 世界时保留了顺序,但我尽量不依赖该特定行为呵呵。

关于JSON 到 Groovy 与 JsonSlurper 和未知 "string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060922/

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