groovy 无法确定当前字符,它不是字符串、数字、数组或对象吗?

niwlg2el  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(138)

请帮助使用Groovy脚本。我在apache nifi中使用这个groovy脚本,但所有的输入实际上都是Json,而不是string或Object。我想这就是为什么我犯了错误。
我想知道如何使用json或将json转换为字符串或对象,以便我的代码可以工作。代码:

FlowFile内容

"COVID-19"

The Response有这样的数据

Response
{
  "Name" : {
    "COVID-19" : [ "88" ],
    "Fever" : [ "40" ]
}
}

我想最后访问data 1中的88,并在执行脚本后将其发送到ahead。
在s3 data中,有一个名为SID的变量,它与COVID-19的SID相同,所以我想将它与流文件内容进行匹配,无论哪个流文件内容与它匹配,它都将发送其id i.i 88(在此示例中)。

k3bvogb1

k3bvogb11#

从文本中解析JSON并找到所需值的代码如下所示:

import groovy.json.*

String nameToFind = 'COVID-19'

String VRResponseText = '''{ "customReasonName" : { "COVID-19" : [ "88" ], "Fever" : [ "40" ] } }'''

def VRResponse = new JsonSlurper().parseText VRResponseText

String desiredValue = VRResponse.customReasonName.findResult{ k, v -> k == nameToFind ? v[ 0 ] : null }

assert desiredValue == '88'

相关问题