如何在Karate框架中遍历带转义字符的JSON获取applicationNumber
在Karate框架中提取带转义字符JSON里的applicationNumber值
如果你的JSON是带转义的字符串格式(比如接口返回的是转义后的JSON文本,而非直接的JSON对象),核心是先把转义字符串解析成Karate能识别的JSON对象,再提取字段。以下是具体实现方案:
示例代码
场景1:转义JSON存储在变量中
# 模拟带转义的JSON字符串 * def escapedJson = "{\"applications\": [{\"applicationNumber\": \"17277238\", \"status\": \"approved\"}, {\"applicationNumber\": \"17277239\", \"status\": \"pending\"}]}" # 把转义字符串解析为JSON对象 * def parsedJson = karate.fromString(escapedJson) # 提取单个指定值(比如第一个申请编号) * def targetAppNum = parsedJson.applications[0].applicationNumber * print "目标申请编号:", targetAppNum # 遍历所有applicationNumber并打印 * karate.forEach(parsedJson.applications, function(item){ print "申请编号:", item.applicationNumber })
场景2:转义JSON是接口响应体
Given url "你的接口地址" When method get Then status 200 # 解析响应体中的转义JSON字符串 * def parsedJson = karate.fromString(response) # 直接打印所有applicationNumber * print "所有申请编号:", parsedJson.applications[*].applicationNumber
常见问题说明
你之前用SET、Print没成功,大概率是因为没处理转义字符串——直接操作转义后的文本(本质是字符串)无法通过.或索引访问JSON字段,必须先用karate.fromString()把它转成JSON对象才行。
内容的提问来源于stack exchange,提问作者Vijay Mogali
相关产品推荐
相关产品推荐

