1
如何通过变量删除特定的json元素:
即我想删除obj.a.b,但它是通过变量传递的。
有没有简单的方法来实现这个?如何通过变量删除嵌套的json元素
var t = 'obj.a.b';
var obj = {a: {b: 'b', b2: 'b2'}};
delete t; // not work here
console.log(JSON.stringify(obj));
如何通过变量删除特定的json元素:
即我想删除obj.a.b,但它是通过变量传递的。
有没有简单的方法来实现这个?如何通过变量删除嵌套的json元素
var t = 'obj.a.b';
var obj = {a: {b: 'b', b2: 'b2'}};
delete t; // not work here
console.log(JSON.stringify(obj));
如果您信任的t
值,你可以使用eval(...)
函数来执行这样的动态代码:
var t = 'obj.a.b';
var obj = {a: {b: 'b', b2: 'b2'}};
eval("delete " + t + ";");
console.log(JSON.stringify(obj));
请注意,如果你不能信任的价值t
(例如,它是用户提供的值),攻击者可以通过为t
提供恶意值来注入代码。您必须小心使用eval(...)
,因为它很容易导致此类代码注入攻击。 This answer关于如何以及何时使用eval有很好的讨论。