首页 > 解决方案 > 在请求有效负载中保持 json 节点可选

问题描述

我正在尝试创建 json 请求正文。其中大多数字段是可选的。如果为它们定义了值,我想保留它们,如果它们未定义,我想删除它们。

 
let payalod = data {
id: 1,
type: "sale"
name: undefined // optional 
}

我想保持 name 属性是可选的。表示如果该值未定义,我们可以在发送请求之前删除 if。如果猜猜它可以用一个来实现?唱歌(可选链接)。但无法获得语法。

任何人都可以帮助我使用可选的链接方法 TIA。

标签: javascriptjsonobject

解决方案


您可以这样做(在 JSON.stringify() 的输出中隐藏空值):

data = {id: 1, type: "sale", name: undefined}

var payload = JSON.parse(JSON.stringify(data, (key, value) => {
    if (value !== null) return value
}))

推荐阅读