我有这样的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'