如何在JSONPath中拼接两个字段值?求可行方案
解决JSONPath拼接字段值的问题
可行解决方案
手动拼接(通用方案)
先分别通过两个JSONPath表达式获取对应值:$.parameters.request['c1']拿到"3"$.parameters.request['i0']拿到"4299"
之后在代码逻辑里将两个字符串拼接(比如c1Val + i0Val,或按需添加分隔符如c1Val + "-" + i0Val)。这是所有JSONPath实现都支持的基础方法。
使用支持扩展函数的JSONPath实现
如果你用的是Jayway JsonPath这类支持函数扩展的库,可以直接用内置的字符串拼接函数:$.parameters.request.join('', ['c1', 'i0'])或者通过
concat函数:concat($.parameters.request.c1, $.parameters.request.i0)注意不同库的函数语法可能有差异,需要对应查阅所用工具的文档。
配置层面支持表达式解析
如果你的配置文件支持嵌入表达式(如SpEL、Freemarker语法),可以直接写表达式实现拼接:"${parameters.request.c1}${parameters.request.i0}"若需要分隔符,可调整为
"${parameters.request.c1}-${parameters.request.i0}",前提是你的配置解析器能识别并执行这类表达式。
原写法无效的原因
你尝试的$.parameters.request[c1,i0]是JSONPath的多字段选择语法,它返回的是包含两个字段值的数组["3", "4299"],而非拼接后的字符串,因此无法达到预期效果。
内容的提问来源于stack exchange,提问作者Erhan
相关产品推荐
相关产品推荐

