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)
演示:
参考文献:
我正在使用带有路径表达式的 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)
演示:
参考文献: