3

我使用 JsonBuilder 来构建 JSONObject/String。

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

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

4

1 回答 1

8

如果您必须更改已经放入 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,或者如果这不可能,我猜你需要解析 Json 字符串并JsonSlurper修改生成的地图,然后JsonBuilder再次重建 Json。

于 2013-11-21T10:08:29.720 回答