gpt4 book ai didi

javascript - 如何在java中获取javascript数组输出(以数组形式)?

转载 作者:行者123 更新时间:2023-11-28 17:34:23 25 4
gpt4 key购买 nike

我有一个 JavaScript 文件 fun.js

function fun1(){
var arr =['This','is','from','js'];
return arr;
}

我想在java数组中获取这个数组,所以我使用nashorn作为-

try{
ScriptEngine engine= new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("fun.js"));
Invocable invocable = (Invocable) engine;
Object obj = (Object)invocable.invokeFunction("fun1");
System.out.println(obj.toString());
}
catch(Exception e){
e.printStackTrace();
}

但是我得到了这个输出-[对象数组]

我怎样才能得到这个输出作为java数组

最佳答案

public static void main(String[] args) throws JSONException, FileNotFoundException, ScriptException, NoSuchMethodException {

ScriptEngine engine= new ScriptEngineManager().getEngineByName("nashorn");

engine.eval(new FileReader("C:\\Users\\Niku\\eclipse-workspace\\java_sample\\src\\test.js"));

Invocable invocable = (Invocable) engine;
Object obj = (Object)invocable.invokeFunction("fun1");
Gson gson = new Gson();
String k = gson.toJson(obj);
JSONObject o = new JSONObject(k);
System.out.println(o.getString("0"));
System.out.println(o.getString("1"));
System.out.println(o.getString("2"));
System.out.println(o.getString("3"));

Iterator x = o.keys();
JSONArray jsonArray = new JSONArray();
ArrayList<String> ar = new ArrayList<String>();
while (x.hasNext()){
String key = (String) x.next();
ar.add(o.get(key).toString());
jsonArray.put(o.get(key));
}

System.out.println(ar);
}

迭代 JsonObject 可以获得每个元素,这些元素可以添加到另一个要使用的数组中。

关于javascript - 如何在java中获取javascript数组输出(以数组形式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49472987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com