gpt4 book ai didi

json - 如何使用 replaceAll 方法删除 JSON 数组、括号、键和值?

转载 作者:行者123 更新时间:2023-12-01 12:16:08 26 4
gpt4 key购买 nike

我有以下 JSON 作为输出:-

def desiredJson = '{"count": 4, "max": "12", "min": 0, "details": [{"goBus": {"first": 12800, "second": 11900, "third": 12800},"goAir": {"first": 12800, "second": 11900, "third": 12800}, "gotTrain": {"first": 12800, "second": 11900},"sell": true, "darn": 2,"rate": [{ "busRate": 11900, "flag": false, "percent": 0}],}],}'

我想删除“count”键及其值,删除

"goBus": {
"first": 12800,
"second": 11900,
"third": 12800
},

并去掉“details”节点的方括号。

我已尝试使用以下代码删除并替换为 null:-

def slurper = new JsonSlurper();
def json = slurper.parse(file)

def newjson = JsonOutput.toJson(json).toString()

String j = "max"
newjson = newjson.replaceAll(""+ j +"", "")

log.info newjson

作为输出,最大值没有被删除。或者有没有其他方法可以从 JSON 中删除所有这些内容。

谁能帮我解决这个问题?

我也试过这个:-

def json = new JsonSlurper().parseText(desiredJson)
def njson = json.details.goBus

def pjson = njson.remove()

log.info JsonOutput.toJson(pjson)

它返回 false。

最佳答案

字符串替换通常没有理由这么做——它很有可能把事情搞砸。您可以在将 map 写回 JSON 之前修改 map 。例如:

import groovy.json.*

def jsonStr = '{"a": 1, "b": [{"c": 3, "d": 4}]}}'
def json = new JsonSlurper().parseText(jsonStr)
// XXX: first "de-array" `b`
json.b = json.b.first()
// next remove `c` from it
json.b.remove('c')
println JsonOutput.toJson(json)
// => {"a":1,"b":{"d":4}}

编辑:

OP 也想摆脱数组,尽管这会混淆命名并且只有在至少有一个元素时才有效(见评论)

关于json - 如何使用 replaceAll 方法删除 JSON 数组、括号、键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com