一对额外的花括号将使用 JSR223 后处理器和 groovy

问题描述 投票:0回答:1

我们正在使用 JSR223 代码来使用以下代码创建 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)
}

vars.put('payload', new groovy.json.JsonBuilder([Extras: payload]).toPrettyString())

我们也使用“toPrettyString”,但仍然得到一对额外的大括号(在开始和结束处)。 有人可以帮忙删除这个吗!

我已经尝试过此链接使用groovy更新json文件后,文件数据包含额外的大括号和“内容”对象

但解决方案对我不起作用。

jmeter jsr
1个回答
0
投票

如果您不想将生成的值作为 JSON 对象,您可以替换此行:

vars.put('payload', new groovy.json.JsonBuilder([Extras: payload]).toPrettyString())

用这一行:

vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString())

在这种情况下,您将只有 JSON 数组,即您的输出将是:

[
  {
    "ExtraId": "528",
    "OptionId": "712",
    "ExpectedNetCost": {
      "Amount": 22.0,
      "Currency": "EUR"
    }
  },
  {
    "ExtraId": "529",
    "OptionId": "714",
    "ExpectedNetCost": {
      "Amount": 20.0,
      "Currency": "EUR"
    }
  }
]

更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.