Ccna final exam - java, php, javascript, ios, cshap all in one. This is a collaboratively edited question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.
Friday, January 13, 2012
Converting a Javascript array to a Java array
I'm trying to convert a Javascript array in Java to a Java array. I tested this example here, but the type "NativeArray" was not recognized: http://stackoverflow.com/a/1433489/975097
How can I get the NativeArray type to be recognized?
Per this answer it looks like your best bet is to write a JavaScript converter function which transforms the native JavaScript array into a Java array using Rhino's Java binding functionality. Note that you'll have to take some care to use the correct type when converting the individual elements.
Also Scriptable interface offers get() and set() so you can easily enumerate the properties of an object and add it to an array:
Scriptable arr = (Scriptable) result; Object [] array = new Object[arr.getIds().length]; for (Object o : arr.getIds()) { int index = (Integer) o; array[index] = arr.get(index, null); }
Same thing but not using NativeArray since that appears to be a Rhino specific thing. You could easily drop a breakpoint and see what type of object you were given then downcast to that. It's some sort of JS Array implementation that's pretty close to NativeArray.
I would recommend Doug Crockfords JSON-java library. This allows you to convert json to native JAVA objects.
ReplyDeletePer this answer it looks like your best bet is to write a JavaScript converter function which transforms the native JavaScript array into a Java array using Rhino's Java binding functionality. Note that you'll have to take some care to use the correct type when converting the individual elements.
ReplyDeleteI would simply use json-lib and parse the array that way.
ReplyDeletefor example see How to parse a JSON and turn its values into an Array?
Rhino offers this:
ReplyDeletehttp://www.mozilla.org/rhino/tutorial.html#usingJSObjs
Also Scriptable interface offers get() and set() so you can easily enumerate the properties of an object and add it to an array:
Scriptable arr = (Scriptable) result;
Object [] array = new Object[arr.getIds().length];
for (Object o : arr.getIds()) {
int index = (Integer) o;
array[index] = arr.get(index, null);
}
Same thing but not using NativeArray since that appears to be a Rhino specific thing. You could easily drop a breakpoint and see what type of object you were given then downcast to that. It's some sort of JS Array implementation that's pretty close to NativeArray.