В качестве костыля можно использовать функцию eval, но это плохо с точки зрения безопасности. К тому же даже в этом случае у вас three не определено. Так что либо так: obj = eval("{one:{hello:[{two:'three'}]}}")
Либо так:
three = 123; obj = eval("{one:{hello:[{two:three}]}}")
saalaus, каким образом у вас даётся именно такая строка? Откуда она к вам в скрипт поступает?
Вот там и копать надо.
Если из вашего php скрипта, то вы не верно подготавливаете данные к выходу. Не собирайте её строкой. Собирайте всё в объект или массив и потом выводите этот объект в ответ echo json_encode($myObject);