vue 前端调接口传参,参数为空则不传给后端问题

文章介绍了一个JavaScript函数`removeEmptyValues`,用于在前后端交互时过滤掉传递对象中的空值,包括嵌套对象的空值。该函数通过递归遍历对象并删除值为空或者空对象的属性,确保只传递有意义的数据给后端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们前后端联调的过程中,正常情况下我们是一股脑把所有的参数都传过去,不管是否为空,但是有些时候,后端需要我们把为空的参数就不要传给他们,这是我们可以用此方法来解决去掉为空的参数:

let data = {
    topoType: 'API',
    relationship: '访问次数',
    name: 'httpapi:http://dns.weixin.qq.com.cn/mmtls/$(param)',
    limit: '5',
    time: '一周',
    dotIp: '源IP名称',
    dotApi: '接口名称',
    dotApp: '应用名称',
    filter: {
        type: '',
        await:11,
        b:111
    },
    obj:{},
    obj1:{a:'',b:''}

}
function removeEmptyValues(obj) {
    for (const key in obj) {
        if (typeof obj[key] === 'object') {
            removeEmptyValues(obj[key]);
        }

        if (!obj[key] || (typeof obj[key] === 'object' && !Reflect.ownKeys(obj[key]).length)) {
            delete obj[key];
        }
    }
}

removeEmptyValues(data)

console.log(data)
dotApi: "接口名称"
dotApp: "应用名称"
dotIp: "源IP名称"
filter: {await: 11, b: 111}
limit: "5"
name: "httpapi:http://dns.weixin.qq.com.cn/mmtls/$(param)"
relationship: "访问次数"
time: "一周"
topoType: "API"

此方法可以过滤掉对象中的空值,也可以过滤掉对象中对象的空值。

### 如何在 Apifox 中设置请求参数值 在 Apifox 中处理请求参数情况主要依赖于如何配置请求体以及理解同 HTTP 方法对于参数递的要求。当涉及到 POST 请求时,确保服务器端能够正确解析值至关重要。 #### 对于 JSON 类型的请求: 如果发送的是 `application/json` 类型的数据,在某些情况下可能希望向服务端递一个字段但是其值为(null),这可以通过直JSON 负载中指定该键并赋予 null 值来实现[^3]。例如: ```json { "key": null } ``` 为了使上述操作生效,特别是在 Node.js 应用程序作为后端情况下,需确认已启用适当中间件用于解析请求主体中的 URL 编码表单数据和 JSON 数据[^4]。 #### 使用 Apifox 设置参数的具体步骤如下: - 打开 Apifox 并创建一个新的 API 口定义。 - 定义好基础信息之后进入 **Request** 部分。 - 如果是 GET 请求,则可以在 Query Params 下添加相应参数名而填任何默认值;如果是 POST/PUT/PATCH 请求且 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data, 则同样可在 Body 的 Form Data 添加对应项留白即可表示此参数未提供具体数值[^1]。 - 当采用 raw 方式的 JSON 输入时,按照前述说明构建包含 null 字段的对象结构,并将其粘贴到 Raw 区域内。 通过以上方法可以有效地模拟客户端提交特定参数的情形或是显式地告知服务端某属性应视为存在的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值