如何更改json groovy值



我有这样的json:

"tags":[
{"tag":"TAG1","value":"VALUE1"},
{"tag":"TAG2","value":"VALUE2"},
{"tag":"TAG3","value":"VALUE3"},
{"tag":"TAG4","value":"VALUE4"}]

是否可以将值(VALUE1, VALUE2等)更改为其他值而不是当前的json值?

感谢您的帮助!

是否可以将值(VALUE1, VALUE2等)更改为其他值而不是当前的json值?

是的。

你可以这样做:

import groovy.json.JsonSlurper
String jsonInputString = '''
{"tags":[
{"tag":"TAG1","value":"VALUE1"},
{"tag":"TAG2","value":"VALUE2"},
{"tag":"TAG3","value":"VALUE3"},
{"tag":"TAG4","value":"VALUE4"}]}
'''
def json = new JsonSlurper().parseText(jsonInputString)
json.tags[0].value = 'updated value'
json.tags[1].value = 'another updated value'
println json

将输出如下内容:

[tags:[[tag:TAG1, value:updated value], [tag:TAG2, value:another updated value], [tag:TAG3, value:VALUE3], [tag:TAG4, value:VALUE4]]]

更新:

要求不清楚,但如果你想动态地找到你想要更新的元素,你可以这样做:

def json = new JsonSlurper().parseText(jsonInputString)
json.tags.find { it.tag == 'TAG1' }?.value = 'updated tag1'
json.tags.find { it.tag == 'TAG2' }?.value = 'updated tag2'

最新更新