JSON 路径后处理器:存储 JSON 数组和对象丢失了它们的数据类型

JSON Path PostProcessor: storing JSON arrays and objects loses their data type

我正在使用带有路径表达式的 JSON 路径后处理器来存储来自 JSON 响应的 JSON 对象,但是当我稍后检索该变量时,它已被缩减为带有键值的字符串 - 对值。所以我不知道那是字符串还是数字。

示例: 响应看起来像这样

{
.
.
"currency" : {
                "code" : "AUD",
                "name" : "Australian Dollars",
                "symbol" : "$"
            },
.
}

使用路径表达式,我找到 currency 并保存。 但是,当我在 HTTP 请求正文数据 ("currency" : ${currency},) 中使用它时, 它是这样的:

"currency" : {code=AUD, name=Australian Dollars, symbol=$},

如何让 JSON 路径后处理器在不丢失数据类型细节的情况下“按原样”保存 JSON 对象?我应该使用不同的方法而不是 JSON 路径?

我建议切换到 JSR223 PostProcessor and Groovy 语言,这样您就可以完全控制正在发生的事情并能够做您想做的事。

假设您有以下 JSON 响应:

{
  "currency": {
    "code": "AUD",
    "name": "Australian Dollars",
    "symbol": "$"
  }
}

相关的 Groovy 代码类似于:

def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def currency = json.currency
def currencyString = new groovy.json.JsonBuilder(currency).toPrettyString()
vars.put('currency', currencyString)
log.info(currencyString)

演示:

参考文献: