You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Karate工具解析嵌套JSON中的merchant_id等字段

问题分析
  • 核心问题:jsonObject.body是JSON格式的字符串,不是可直接访问的JSON对象,所以无法通过.语法读取result或其下的属性。
  • 额外问题:字符串内的result值使用了单引号('merchant_id'),不符合标准JSON的双引号要求,直接解析会失败。
解决方法

先将字符串中的单引号替换为双引号修正格式,再用Karate的karate.fromJson()方法把字符串解析成JSON对象,之后就能正常访问属性了。

示例代码:

def jsonObject = 
{
  "statusCode": 200,
  "isBase64Encoded": false,
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{\"result\": \"{'merchant_id': 609125186933, 'charge_month_duration': ['201801', '201801']}\"}"
}
// 替换单引号为双引号,修正JSON格式
def correctedBodyStr = jsonObject.body.replaceAll("'", "\"")
// 解析字符串为JSON对象
def parsedBody = karate.fromJson(correctedBodyStr)
// 正常访问目标属性
print parsedBody.result.merchant_id
print parsedBody.result.charge_month_duration
补充说明

如果后端返回的body字符串本身是标准JSON(全双引号),可以跳过替换步骤,直接用karate.fromJson(jsonObject.body)解析。

内容的提问来源于stack exchange,提问作者Swasthik Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:12:07