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

使用JSR223 PreProcessor时如何移除请求中多余的{和}?

解决JSR223 PreProcessor生成API请求时多余{}的问题
  • 排查脚本字符串拼接逻辑
    多余的{}通常是因为你在脚本里把代码逻辑的大括号错误写入了输出字符串,或者手动拼接JSON时重复添加了外层{}。检查脚本中生成metrics内容的部分:如果主请求的JSON已经包含"metrics": { ... }的外层{},那么脚本里只需要生成内部的键值对内容,不要额外添加{和}。

  • 使用JSON工具类生成(推荐)
    避免手动拼接字符串出错,用Groovy的JsonBuilder来构建标准JSON结构,示例代码:

    // 构建metrics的键值对映射
    def metricsMap = [
        "com.cixsoft.agent.metric.NetworkMetric": "NetworkMetric.json",
        "com.cixsoft.agent.metric.ProcessInfoMetric": "ProcessInfoMetric.json",
        "com.cixsoft.agent.metric.CpuMetric": "CpuMetric.json"
    ]
    // 生成JSON字符串
    def jsonBuilder = new groovy.json.JsonBuilder(metricsMap)
    // 将结果存入JMeter变量,供请求引用
    vars.put("metricsContent", jsonBuilder.toString())
    

    在API请求的JSON体中,直接引用变量即可:

    "metrics": ${metricsContent}
    

    这种方式会自动生成正确的JSON结构,不会出现多余的{}。

  • 修正模板语法错误
    如果使用GString模板生成内容,注意不要误写${{...}}这种格式,这会导致输出额外的{}。确保模板里的大括号仅用于JSON结构,而非代码插值的语法错误。

  • 移除脚本中多余的{}
    如果你是手动拼接字符串,直接删掉脚本里多余的"{"和"}"语句。比如原脚本若写了:

    def metricsStr = "{" + 
        "\"com.cixsoft.agent.metric.NetworkMetric\": \"NetworkMetric.json\",\n" +
        "\"com.cixsoft.agent.metric.ProcessInfoMetric\": \"ProcessInfoMetric.json\",\n" +
        "\"com.cixsoft.agent.metric.CpuMetric\": \"CpuMetric.json\"" +
    "}"
    

    就把首尾的"{"和"}"去掉,只保留中间的键值对内容,再传入请求的"metrics": { ... }中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:25:44