0
我目前正在使用Angular 2應用程序中的配置服務,我當前的擔心是關於在我的代碼中使用eval來檢索配置中的值。基於變量訪問Json中的第二級孩子
這裏是我的配置文件的樣本:
{
"application": {
"environment": "dev",
"displayMenu": false
},
"error": {
"title": "Title Error",
"message": "Error message"
}
}
我檢索這個JSON用一個簡單的HTTP請求,但現在我想用這樣的定義我的GET方法來訪問一個元素:
get(key: any) {
return (eval("this._config." + key));
}
正如你所看到的,我的代碼中有一個eval,我想避免。我不得不使用eval來讓開發人員執行.get('application.environment'),實際上我沒有發現任何其他人很容易的可能性。
我能看到的唯一方法就是將鍵分割爲「。」。並在我的JSON中檢索正確的元素,就像它是一個簡單的數組。但有了這個解決方案,我只能堅持一個深度。
非常感謝你,編輯有點符合我的代碼,它是完美的罰款。感覺比使用骯髒的評估更好:D – Sakuto
如果你確實使用eval,確保你使用'const evil = eval'作爲代碼的第一行。 – synthet1c