使用JSR223 PostProcessor(Groovy)生成JSON出现多余大括号求助
解决JSR223生成JSON首尾多余大括号的问题
问题根源在于你构建JSON时,将payload数组包裹在了一个Map([Extras: payload])中,而Map在JSON结构里对应对象类型,必然会被外层大括号包裹。
修改后的代码
def mandatory = new groovy.json.JsonSlurper().parse(prev.getResponseData()).Properties.Room.Extras.findAll { extra -> extra.IsMandatory } def payload = [] mandatory.each { extra -> def item = [:] item.put('ExtraId', extra.ExtraId) item.put('OptionId', extra.Options[0].OptionId) item.put('ExpectedNetCost', extra.Options[0].NetCost) payload.add(item) } // 直接以数组作为JSON根节点,而非包裹在Map中 vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())
说明
- 若你需要的是纯数组格式的JSON(比如
[{"ExtraId": ...}, ...]),上述修改会直接生成数组结构,外层不再有多余大括号。 - 若你原本就需要
Extras字段的对象结构(比如{"Extras": [...]]}),那外层大括号是JSON对象的标准格式,不属于多余内容,无需修改。
内容的提问来源于stack exchange,提问作者KeshavKumar
相关产品推荐
相关产品推荐

