Is there a way to access Java Maps and Lists as JavaScript Objects in Rhino?
I have a Map which contains only other maps and lists of primitives and Strings, I'd like to pass this to a Rhino script and do stuff to it, and return the modified object back out to Java - but since they are java.util.Map and java.util.List Objects, I can't use standard JavaScript associative array syntax.
ie: fooMap.get("keyName")
will work, but fooMap.keyName
and fooMap["keyName"]
will not.
I don't know if there is a Rhino-specific way to do this, or if there is some conversion/cast utility that will help. Commons BeanUtils is not sufficient, because to convert a Map to a bean (which can be accessed via associative array syntax), you must first create a class which has all of the named mutators/accessors. I won't know the structure of the object at runtime.
for (var in list) {...}
syntax rather than having to use an explicit iterator. – Melodramatic