在groovy JsonBuilder中使用'@'

时间:2016-03-23 22:32:59

标签: json groovy

我正在尝试在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中是否可以实现?

1 个答案:

答案 0 :(得分:2)

在Groovy中,@field具有特殊含义。您应该使用引号来使用此字符:

def root = builder trace_Id: traceId, '@timestamp': timeStamp, '@version': 1, body: xmlPayload