如何将Java对象从JavaScript发送到Java? LiveConnect允许我们通过调用applet方法获取Java对象。即我们可以在applet中使用以下方法:
public MyClass getMyClass() { return new MyClass(); }`
其中MyClass
是:
public class MyClass implements Serializable {
private String a;
private String b; //getters, setters
}
并在JS中使用以下方法访问此对象:
applet.getMyClass().someMethod();
但是如何将对象从JavaScript(我认为的json对象)传递给java方法(而不是json字符串)?即我想要这样的applet方法:
public void myMethod(MyClass var)
并且从JavaScript调用此方法传递类型MyClass
的参数。如何在JS中构建MyClass
对象?我希望LiveConnect自动从JSON转换为Java对象。
答案 0 :(得分:2)
我相信这应该会让你对如何解决这个问题有所了解。
import netscape.javascript.*;
public class MyClass implements Serializable {
public String a;
public String b;
public JavaDog(JSObject o) {
this.a= (String)o.getMember("a");
this.b = (String)o.getMember("b");
}
}
然后使用new Packages.MyClass(yourJavaScriptObject)
创建要传递给Java的对象。
此处提供更多信息:
https://developer.mozilla.org/en-US/docs/JavaScript/Guide/LiveConnect_Overview
答案 1 :(得分:0)
Java LiveConnect文档说:
当一个以前返回给JavaScript的Java对象时
将引擎传递回Java,只需检查对象
赋值与目标类型的兼容性。唯一的例外
此规则会自动转换为java.lang.String
。