json - 如何在 groovy 中修改 JSON

标签 json groovy jsonbuilder

我使用 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/

相关文章:

java - 如何获取 json Web 服务请求的响应时间?

grails - 在 Groovy 中检查集合是否为 null 或为空

groovy - 如何使用 Groovy Set 来获取独特元素?

groovy - 捕获 : java. lang.StackOverflowError JsonBuilder 关闭

json - 使用 Groovy JsonBuilder 时如何保留时区?

php - PHP 中的多级 JSON 数组

json - epoch 快速将 json int(unix 时间戳)转换为可读日期

unit-testing - 如何为单元测试创​​建虚拟数据?

javascript - Angular JS/IONIC 读取 JSON 文件