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对象
展开
 我来答
碧血玉叶花
2015-05-22 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1723万
展开全部
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对象
FDAGDIA
推荐于2018-03-28
知道答主
回答量:20
采纳率:100%
帮助的人:14.3万
展开全部
//楼上写的代码是可以用的但是楼主说要比较复杂的
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数据 那么你想怎么转就怎么转了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式