Conversion d'un tableau Javascript sur un tableau Java

J'essaie de convertir un tableau Javascript en Java vers un tableau Java. J'utilise le paquet javax.script. J'ai testé cet exemple ici, mais le type "NativeArray" n'a pas été reconnu: https://stackoverflow.com/a/1433489/975097

Comment puis-je obtenir le type NativeArray pour être reconnu?

Par cette réponse, il semble que votre meilleur pari soit d'écrire une fonction de convertisseur JavaScript qui transforme le réseau JavaScript natif en un réseau Java en utilisant la fonctionnalité de liaison Java de Rhino . Notez que vous devrez prendre soin d'utiliser le type correct lors de la conversion des éléments individuels.

[Modifier] Voici un exemple de travail utilisant un réseau de chaînes:

 ScriptEngine js = new ScriptEngineManager().getEngineByName("JavaScript"); String ss[] = (String[]) js.eval( "(function() {" + " var a = java.lang.reflect.Array.newInstance(java.lang.String, 3);" + " a[0] = 'foo';" + " a[1] = 'bar';" + " a[2] = 'gah';" + " return a;" + "})()"); System.out.println(Arrays.toString(ss)); // => [foo, bar, gah] 

Rhino offre ceci:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Embedding_tutorial#usingJSObjs

Aussi l'interface Scriptable offre get () et set () afin que vous puissiez facilement énumérer les propriétés d'un objet et l'ajouter à un tableau:

 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); } 

Même chose mais pas l'utilisation de NativeArray car cela semble être une chose spécifique au Rhino. Vous pouvez facilement déposer un point d'arrêt et voir quel type d'objet vous a été donné puis abattu à cela. C'est une sorte de mise en œuvre JS Array qui est très proche de NativeArray.

Je recommanderais la bibliothèque JSON-java de Doug Crockfords . Cela vous permet de convertir json en objets JAVA natifs.

Je voudrais simplement utiliser json-lib et analyser le tableau de cette façon. Par exemple, voir Comment analyser un JSON et transformer ses valeurs en un Array?