JSON到Groovy与JsonSlurper和未知的“字符串”

我正在编写一个Grails / Groovy应用程序,我在params成员内部有一个可以更改的“字符串”名称(索引和小部件)的 JSON对象.也就是说,下次它可能是极致和缩放.这是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不停地撞在墙上.

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)