我使用JsonBuilder构建JSONObject / String。
但是,如何更新/更改此JSONObject / String中的一个字段的值?
我没有看到使用JsonBuilder执行此操作的可能性。那我用什么节目?
答案 0 :(得分:6)
如果您有更改已经放入JsonBuilder的内容,那么您可以这样做:
import groovy.json.*
def map = [ users:[ [ name:'tim', posts:43 ], [ name:'alice', posts:72 ] ] ]
JsonBuilder builder = new JsonBuilder( map )
builder.content.users[ 0 ].name = 'dave'
assert builder.toString() == '{"users":[{"name":"dave","posts":43},{"name":"alice","posts":72}]}'
但是由于content
没有从Object显式导出,我称之为副作用,并且不会依赖它在未来版本的Groovy中工作。
最好在将地图传递给JsonBuilder
之前将地图弄好,或者如果不可能,我猜你需要用JsonSlurper
解析Json字符串修改生成的Map然后再次使用JsonBuilder
重建Json。