如何解决无法从JSON字符串中删除键值对?
做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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。