如何使用Groovy的configslurper序列化列表?

时间:2011-01-27 12:03:59

标签: groovy

我想使用ConfigSlurper将配置文件写入磁盘,但是我收到错误:

groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.indexOf() is applicable for argument types: (java.lang.String) values: [.]

以下示例正常工作,直到我取消注释它的“aList”部分。在配置slurper中序列化是否存在问题,或者是否有另外一种方法可以写这个?

def configObj = new ConfigObject()
configObj.testing = [1, 2, 3]
configObj.nested = [ objects : 'wtf' ]

/*configObj.aList[0] = 
    [
        listItem:"000",
        subLists:(["ZZ","AB"]),
    ]*/
print configObj

//serialize it
new File( 'newout.groovy' ).withWriter{ writer ->
  configObj.writeTo( writer )
}

1 个答案:

答案 0 :(得分:4)

是的,这应该有效。您只需要首先初始化地图:

configObj.aList = []

然后使用您的代码

configObj.aList[0] = 
    [
        listItem:"000",
        subLists:(["ZZ","AB"]),
    ]

或者,只是内嵌元素

configObj.aList = [
    [
        listItem:"000",
        subLists:(["ZZ","AB"]),
    ]
]