java调用javascript时,如何将NativeArray或NativeObject转换成java实体或者HashMap,List对象 65
java调用javascript时,如何将NativeArray或NativeObject转换成java实体或者HashMap,List对象有没有现成的代码就是用java...
java调用javascript时,如何将NativeArray或NativeObject转换成java实体或者HashMap,List对象有没有现成的代码
就是用java调用javascript的代码时用 javascript的 eval() 方法将json字符串转换成我想要的java对象 展开
就是用java调用javascript的代码时用 javascript的 eval() 方法将json字符串转换成我想要的java对象 展开
2个回答
展开全部
package com.sinaapp.manjushri;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
/**
* Java调用并执行js文件,传递参数,并活动返回值
*
* @author manjushri
*/
public class ScriptEngineTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
String jsFileName = "expression.js";
// 读取js文件
FileReader reader = new FileReader(jsFileName);
// 执行指定脚本
engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine;
// 调用merge方法,并传入两个参数
// c = merge(2, 3);
Double c = (Double)invoke.invokeFunction("merge", 2, 3);
System.out.println("c = " + c);
}
reader.close();
}
}
追问
这个太简单了,我想要 比较复杂的 json串转换成 javascript的 NaviteArray或者NativeObject对象 转成java的 HashMap 或者实体, 或者数组 或者 ArrayList对象
展开全部
//楼上写的代码是可以用的但是楼主说要比较复杂的
Object q=new Object();
//用object接收js返回的json
//如果你的参数是json 在js里接收的将是字符串 记得JSON.parse(datas)转换一下;
q=(Object) invoke.invokeFunction("get_test_datas",array1,container1);
//再用gson将object转为json
Gson gson=new Gson();
System.out.println(gson.toJson(q));
org.json.JSONObject container = new org.json.JSONObject(gson.toJson(q));
//已经获取到json数据 那么你想怎么转就怎么转了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询