我使用 JsonBuilder 构建 JSONObject/String。
但是,如何更新/更改此 JSONObject/String 中一个字段的值?
我没有看到使用 JsonBuilder 执行此操作的可能性。那我用什么节目呢?
最佳答案
如果您必须更改已放入 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 中工作。
最好在将 map 传递给 JsonBuilder
之前正确获取 map ,否则我猜你需要使用 JsonSlurper
解析 Json 字符串修改生成的 Map,然后再次使用 JsonBuilder
重建 Json。
关于json - 如何在 groovy 中修改 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20104819/