Groovy JsonBuilder调用方法来添加信息

Groovy JsonBuilder调用方法来添加信息,groovy,jsonbuilder,Groovy,Jsonbuilder,下面的代码工作正常 def json = new JsonBuilder() json { writeNumbers(delegate, "myNumbers") } println json.toPrettyString() def writeNumbers(json, name) { json."$name" { "w" 32 "h" 32 } } 但一旦我在另一个“作用域”内移动或添加writeNumbers调用,我就会得到一个stackover

下面的代码工作正常

def json = new JsonBuilder()

json {
  writeNumbers(delegate, "myNumbers")
}

println json.toPrettyString()

def writeNumbers(json, name) {
  json."$name" {
      "w" 32
      "h" 32
  }
}
但一旦我在另一个“作用域”内移动或添加writeNumbers调用,我就会得到一个stackoverflow异常;就这样

def json = new JsonBuilder()

json {
  scopes {
    writeNumbers(delegate, "myNumbers")
  }
}

println json.toPrettyString()

def writeNumbers(json, name) {
  json."$name" {
      "w" 32
      "h" 32
  }
}
结果:

Caught: java.lang.StackOverflowError
java.lang.StackOverflowError
为什么会发生这种情况?我该如何应对?
谢谢

我认为这是由于在构建闭包链时方法
writeNumbers
未知的潜在错误造成的

您需要更改:

writeNumbers(delegate, "myNumbers")

它会起作用的。。。有趣的是,这感觉像个虫子。。。如果我有空闲时间,我会调查;-)

编辑:找到显示相同内容的
this.writeNumbers(delegate, "myNumbers")