You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Groovy的JsonSlurper移除JSON中的eventLogs字段?

Groovy移除JSON中的eventLogs字段解决方案

方法一:直接操作解析后的Map对象

JsonSlurper解析顶层为对象的JSON时,返回的是LinkedHashMap实例,直接调用Map的remove()方法就能删除指定键:

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder

def jsonSlurper = new JsonSlurper()
// 解析JSON字符串为Map
def jsonMap = jsonSlurper.parseText(db.get(id).content().toString())

// 移除"eventLogs"键值对
jsonMap.remove("eventLogs")

// 将修改后的Map转回格式化的JSON字符串
def resultJson = new JsonBuilder(jsonMap).toPrettyString()

方法二:过滤生成新Map(不修改原对象)

如果不想改动原解析后的Map,可以用findAll过滤掉不需要的字段,生成新Map后再转JSON:

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder

def jsonSlurper = new JsonSlurper()
def jsonMap = jsonSlurper.parseText(db.get(id).content().toString())

// 过滤掉"eventLogs"字段,生成新Map
def filteredMap = jsonMap.findAll { key, _ -> key != "eventLogs" }

// 转成JSON字符串
def resultJson = new JsonBuilder(filteredMap).toPrettyString()

补充说明

你之前没找到remove()方法是因为忽略了JsonSlurper解析后的对象本质是Map,所以Map的所有标准方法(包括remove、findAll等)都可以直接使用,不需要额外的JSON专用方法。

内容的提问来源于stack exchange,提问作者deewreck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:01:05