问题描述
做console.log(data.toString())
时,得到以下输出:
{
"cid":"9333227","status" : 30,"user" : "user1"
}
在执行console.log(data['cid'])
之前执行删除操作,我得到undefined
作为输出
我想删除cid
键值对,以使console.log(data.toString())
应该生成以下输出:
{
"status" : 30,"user" : "user1"
}
我先做delete data['cid']
,然后再做console.log(data.toString())
。但是,它仍在打印原始json
{
"cid":"9333227","user" : "user1"
}
解决方法
如果运行data.toString())
并获得输出,则意味着data
不是对象。可能是字符串。
如果您运行:
"hello".toString();
您会收到“你好”。
如果您运行:
delete "hello".foo
您正在删除字符串上不存在的属性,该属性可以正常工作。它不会更改字符串的内容。
所以我认为您没有对象,您有JSON字符串。要对其进行变异,您需要先对其进行解析:
const obj = JSON.parse(data);
delete obj.cid;
console.log(obj);
如果需要将其转换回JSON字符串,则可以使用JSON.stringify()
。
let jsonobj = {
"cid": "933227","status": 30,"user": "user1",}
delete jsonobj['cid']
console.log(JSON.stringify(jsonobj));
尝试使用JSON.stringify()而不是.toString()