我在输入JsonSlurper
Groovy 时遇到了一些麻烦。我对 Groovy 还很陌生,甚至在向它添加强类型方面也很新——请耐心等待。
现在我已经创建了一个trait
定义我的 JSON 对象的一般形状的,我正在尝试将结果parseText
转换为它。
import groovy.json.JsonSlurper
trait Person {
String firstname
String lastname
}
def person = (Person)(new JsonSlurper().parseText('{"firstname": "Lando", "lastname": "Calrissian"}'))
println person.lastname
这抛出
Exception in thread "main" org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '{firstname=Lando, lastname=Calrissian}' with class 'org.apache.groovy.json.internal.LazyMap' to class 'Person' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: Person(org.apache.groovy.json.internal.LazyMap)
...
我可以看到为什么我的代码没有意义,我不是试图更改数据的类型(转换),我只是想让我的 IDE 知道这是我的对象内部的内容。
是否可以至少向我的 JSON 对象添加代码完成? 我也很想进行运行时类型检查,但这不是必需的。