Moka, в сторону готовых решений смотрели? Вот это, например -
monkey-json.
Также красиво (через точку), как в JS сделать не получится, т.к. нет возможности генерировать произвольные объекты "на лету". Через массивы, слишком сложно. Самый простой вариант, это последний.
Чтобы иметь возможность проходить по объекту в цикле, словно это коллекция, объект должен возвращать иметь метод:
Method ObjectEnumerator:Enumerator()
Класс Enumerator должен реализовывать следующие методы:
Class Enumerator
Method HasNext:Bool()
End
Method NextObject:Object()
End
End
Вместо Object должен быть необходимый в цикле класс. Также можно использовать обобщенный класс для реализации:
Class Enumerator<T>
Method HasNext:Bool()
End
Method NextObject:T()
End
End
Советую посмотреть как устроены List, Map, Stack и на этом основываться.
Надеюсь информация поможет.