正常情况
// 默认情况下数据是这样的
let data = [
{
id: 1,
value: undefined
},
{
id: 2,
value: undefined
},
{
id: 3,
value: undefined
},
]
// 经过JSON.stringify之后的数据,少了value key,导致后端无法读取value值进行报错
// 具体原因是`undefined`、`任意的函数`以及`symbol值`,出现在`非数组对象`的属性值中时在序列化过程中会被忽略
console.log(JSON.stringify(data))
// '[{"id":1},{"id":2},{"id":3}]'
处理:
// 判断到value为undefined,返回空字符串即可
JSON.stringify(data, (key, value) => typeof value === 'undefined' ? '' : value)
// '[{"id":1,"value":""},{"id":2,"value":""},{"id":3,"value":""}]'