更新时间:2026-02-27 GMT+08:00
分享

中止响应协议

中止响应协议语法遵循以下原则:
  • 需要按照Json列表格式填写,列表里每一项均为对象。
  • 对象允许为空,即{}。为空时将复制拦截的响应数据,其键值语法与响应索引语法一致。若出现非法值,则该对象的配置内容将会跳过。
  • 单条中止响应协议list最大支持5个对象,每个对象内支持配置10条索引,超出的数据将忽略。同个对象中的索引不允许重复,重复后可能会造成结果不准确。
  • 如果每个响应内容不变,可以直接配置常量,例如示例二:响应合规检测场景二:“防护动作”设置为“中止响应”示例里的$.data.choices
  • 如果每个响应的内容不一样,但可以从带有“卡”的响应中获取的场景,可参考示例二:响应合规检测场景二:“防护动作”设置为“中止响应”示例$.data.model配置,对象值遵循响应索引语法。
  • 索引内的操作若有顺序,后面的操作会将前面的覆盖。例如,先对$.data.model赋值,后对整个$.data赋值,则对$.data.model的赋值会不生效。
  • 如果对象是数组类型,对其进行子对象赋值;如果对象是非数组类型,对其进行数组下标赋值,将会导致输出数据不正常。例如,原始请求数据如下:
    1
    {"data":{"arr":["1","2","3"],"item":{"sub_item":1}}}
    

    此时,$.data.arr.new_index或者$.data.item[1].new_index是非法的。

    如果必须这么修改,建议先清空$.data.arr$.data.item后赋值,如下:

    1
    2
    3
    4
    5
    6
    [
        {
            "$.data.arr": "{}",
            "$.data.arr.new_index": "new_data"
        }
    ]
    
  • 如果对象是数组类型,不支持不存在的负数下标赋值。例如,原始请求数据如下:
    1
    {"data":{"arr":["1","2","3"],"item":{"sub_item":1}}}
    

    $.data.arr[-4]的赋值是非法的。如果需要在$.data.arr的最前面插入“0”,你可以倒序对$.data.arr进行赋值(正序赋值会改变原有值,导致结果不符合预期):

    1
    2
    3
    4
    5
    6
    7
    8
    [
        {
            "$.data.arr[3]": "$.data.arr[2]",
            "$.data.arr[2]": "$.data.arr[1]",
            "$.data.arr[1]": "$.data.arr[0]",
            "$.data.arr[0]": "0"
        }
    ]
    

相关文档