Groovy如何删除JSON数组中bookId等于指定值的对应对象
问题原因
你现有代码的逻辑是遍历books数组中的每个对象,删除对象内部值等于"1"的属性,所以仅会移除bookId字段,不会将整个符合条件的对象从数组中删除。
解决方案
直接对books数组调用Groovy内置的removeAll方法,匹配bookId为"1"的元素直接移除即可,修改后的完整代码如下:
import groovy.json.JsonSlurper import groovy.json.JsonOutput JsonSlurper slurper = new JsonSlurper() String jsonString = vars.get("jsonOutput") def parsedJson = slurper.parseText(jsonString) log.info("Json before: " + jsonString) // 核心修改:直接移除books数组中bookId为"1"的整个对象 parsedJson.books.removeAll { it.bookId == "1" } def json = JsonOutput.toJson(parsedJson) // 如果需要格式化输出结构,可替换为下行代码 // def json = JsonOutput.prettyPrint(JsonOutput.toJson(parsedJson)) log.info("Json after: " + json.toString())
内容的提问来源于stack exchange,提问作者sarjaana
相关产品推荐
相关产品推荐

