如何在groovy中将新的json字段添加到现有的json中

Han*_*nth 6 groovy json

我现有的Json看起来像:

def json_req = "{\"date\":\"Tue, 06 Oct 2015 09:10:52 GMT\",\"nonce\":\"6cm7PmwDOKs\",\"devId\":\"<value>\",\"appId\":\"<value>\"}
Run Code Online (Sandbox Code Playgroud)

执行操作我可以获得sig有价值的字段.我需要附加这个附加字段的值如下:

"sig":"<value>"
Run Code Online (Sandbox Code Playgroud)

所以新的json看起来像:

def json_req = "{\"date\":\"Tue, 06 Oct 2015 09:10:52 GMT\",\"nonce\":\"6cm7PmwDOKs\",\"devId\":\"<value>\",\"appId\":\"<value>\",\"sig\":\"<value>\"}"
Run Code Online (Sandbox Code Playgroud)

在同一个脚本中,我可以使用json中的值附加这个新参数吗?

jal*_*aba 12

你可以解析json JsonSlurper,因为结果是a LazyMap,你可以简单地添加新条目(println添加为提示的行):

import groovy.json.*

def json_req = '''{
"date":"Tue, 06 Oct 2015 09:10:52 GMT", 
"nonce":"6cm7PmwDOKs",
"devId":"<value>",
"appId": "<value>"
}'''

def json = new JsonSlurper().parseText(json_req)
println json.getClass().getName()
json << [sig: "<value>"] // json.put('sig', '<value>')
println JsonOutput.toJson(json)
Run Code Online (Sandbox Code Playgroud)

groovy Web控制台上试一试