1) При использовании eval аргумент, который вы предоставляете, должен быть действительным, полный javascript.
Линия
var masterkey["key1"]["key2"];
не является допустимым оператором JavaScript.
При назначении значения переменной необходимо использовать =
. Простое объединение некоторых значений в конце имени переменной не будет работать.
2) var masterkey = ["key1"]["key2"]
не имеет смысла.
Это похоже на попытку присвоить свойству «key2» свойства «key1» ничего для masterkey.
Если вы хотите, чтобы результат был похож на пример объекта, который вы даете, то это то, что вам нужно создать. Тем не менее, правильный синтаксический анализ строки для создания объекта лучше, чем использование регулярных выражений для преобразования ее в некоторый сценарий для оценки.