Groovy中从String到Map的groovycastexception
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy中从String到Map的groovycastexception相关的知识,希望对你有一定的参考价值。
我正在使用Groovy在ready api中实现一个项目。我创建了一个具有以下结构的Groovy脚本文件。
def templateValue = JsonOutput.toJson('''
{
"generationTime": null,
"house": {
"property": "$property",
"state": "$state",
"county": "$county",
"calls": [
{
"first": "$first",
"second": "$second",
"third": "third Week"
}
],
"action": "$action"
}
}''')
def binding = ["property" : "Villa", "state" : "MA", "county" : "MIDDLE", "first" : "123", "second" : "4565", "action" : "Update"]
def engine = new groovy.text.SimpleTemplateEngine()
def template = engine.createTemplate(templateValue).make(binding)
log.info template.toString()
def jsonSlurper = new JsonSlurper()
Map expectedOutput = jsonSlurper.parseText(template.toString())
log.info expectedOutput["property"]
我需要从json获取节点值,然后从json中删除特定节点。
答案
你不需要顶部的JsonOutput.toJson
试试这个:
def templateValue = '''
{
"generationTime": null,
"house": {
"property": "$property",
"state": "$state",
"county": "$county",
"calls": [
{
"first": "$first",
"second": "$second",
"third": "third Week"
}
],
"action": "$action"
}
}'''
def binding = ["property" : "Villa", "state" : "MA", "county" : "MIDDLE", "first" : "123", "second" : "4565", "action" : "Update"]
def engine = new groovy.text.SimpleTemplateEngine()
def template = engine.createTemplate(templateValue).make(binding)
def jsonSlurper = new groovy.json.JsonSlurper()
Map expectedOutput = jsonSlurper.parseText(template.toString())
println expectedOutput.house.property
以上是关于Groovy中从String到Map的groovycastexception的主要内容,如果未能解决你的问题,请参考以下文章
在 Groovy 上使用 JSON 响应并使用响应填充 Map