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有很好的討論。