我有这个对象:
{
name: "",
email: "",
phone: "",
protocol: "",
area: "",
subject: "",
message: "",
validation: this.validator.valid()
}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为JSON,但是我不想要该validation属性。
我已经尝试了以下方法:
const test = JSON.stringify(this.state);
delete test.validation;
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?
JSON.stringify需要一个可以使用的替换回调。replacer函数使用一个键k,并将值v字符串化为参数。返回undefined将具有不将键包含在最终结果中的效果:
state = {
name: "",
email: "",
phone: "",
protocol: "",
area: "",
subject: "",
message: "",
validation: "some val"
}
const test = JSON.stringify(state, (k, v) => k != 'validation' ? v : undefined);
console.log(test)Run Code Online (Sandbox Code Playgroud)
注意:像这样使用它也会validation从任何子对象中删除密钥,这可能是您想要的,也可能不是您想要的。