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

前端之家收集整理的这篇文章主要介绍了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世界时保留了顺序,但我尽量不依赖于特定的行为.

原文链接:https://www.f2er.com/js/159083.html

猜你在找的JavaScript相关文章