我对Streamset还很陌生,我发现在Groovy Evaluator对象中构建JSON对象有点混乱和挑战。
我需要构建下面的JSON:
{
"filter": "(equals(type,'my/specific/Type') and equals(attributes.number, '1234') and (equals(attributes.status,'ACTIVE'))",
"max": 10
}
我试过这个:
import groovy.json.*
records = sdc.records
for (record in records) {
try {
event = "{"filter": "(equals(type,'my/specific/Type') and equals(attributes.number, '1234') and (equals(attributes.status,'ACTIVE'))","max": 10}"
record.value = event
// Write a record to the processor output
sdc.output.write(record)
} catch (e) {
// Write a record to the error pipeline
sdc.log.error(e.toString(), e)
sdc.error.write(record, e.toString())
}
}
但我收到以下错误:
SCRIPTING_03 -脚本无法编译:脚本异常:异常错误:启动失败:Script1076.groovy:6:意外标记:和@第6行,第59列. uals(类型,'my/specific/Type'),并且等于^ 1错误'
请帮助解决这个问题。
1条答案
按热度按时间brc7rcf01#
这不是JSON本身的问题,而是如何转义双引号字符。Groovy只不过是Java +一些语法糖,所以在Groovy中转义“字符是一样的:使用“,例如: