如何在groovy中修改JSON

时间:2013-11-20 19:11:46

标签: json groovy jsonbuilder

我使用JsonBuilder构建JSONObject / String。

但是,如何更新/更改此JSONObject / String中的一个字段的值?

我没有看到使用JsonBuilder执行此操作的可能性。那我用什么节目?

1 个答案:

答案 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。