我正在尝试在groovy中构建以下json。
{
"trace_id":123,
"@timestamp":"455754534538",
"body" : "abcd"
}
以下是我用来尝试此操作的代码段。
import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
def xmlPayload = "payload";
def traceId = mc.getProperty('TraceIdProp');
def timeStamp = mc.getProperty('TimestampProp');
builder = new JsonBuilder()
def root = builder trace_Id: traceId, @timestamp: timeStamp, @version: 1, body: xmlPayload
然而,似乎我不能在json构建器中使用'@'字符,它会产生以下错误。
groovy: 8: expecting an identifier, found '@' @ line 8, column 51.
= builder trace_Id: traceId, @timestamp
这在groovy中是否可以实现?
答案 0 :(得分:2)
在Groovy中,@field
具有特殊含义。您应该使用引号来使用此字符:
def root = builder trace_Id: traceId, '@timestamp': timeStamp, '@version': 1, body: xmlPayload