为了账号安全,请及时绑定邮箱和手机立即绑定

如何从java发送和接收jxbrowser中的序列化对象

如何从java发送和接收jxbrowser中的序列化对象

慕婉清6462132 2021-09-29 17:31:34
我必须从发送序列化对象java来javascript与jxbrowser我做这样的String json = objectMapper.writeValueAsString(value);JSValue window = browser.executeJavaScriptAndReturnValue("window");window.asObject().setProperty(requestName, json);据我所知,它会将全局窗口中的对象设置为requestName? 是真的?以另一种方式,我如何从 Java 站点读取此对象。这段代码好吗?JSValue window = browser.executeJavaScriptAndReturnValue("window."+requestName);T t = objectMapper.readValue(window.toString(), clazz))提前致谢
查看完整描述

2 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

您好,这里有两个方面。


Javascript 执行上下文


JSValue可以是普通值或 JavaScript 对象。


调用 executeJavaScriptAndReturnValue 后,您的执行上下文就完成了。您可以评估返回的对象。这个返回的对象可以是一个带有函数的 Java 脚本对象,在这种情况下您可以访问它。


假设您的 JavaScriptObject 有一个接受字符串的方法 helloWorld 。


JSValue document = browser.executeJavaScriptAndReturnValue("myJavascriptObject");

JSValue write = document.asObject().getProperty("helloWorldMethod");

write.asFunction().invoke(document.asObject(), "To Me");

这样我们就将“To Me”字符串传递给了 helloWorldMethod。


您还可以在对象上设置属性并稍后调用另一个方法。如果此方法使用此属性,则在下一次执行中将考虑它:


JSValue document = browser.executeJavaScriptAndReturnValue("myJavascriptObject");

JSValue write = document.asObject().getProperty("helloWorldMethod");

document.asObject().setProperty("shouldISayGoodByeInstead",true)

write.asFunction().invoke(document.asObject(), "To Me");

属性 shouldISayGoodByeInstead 将作为调用 helloWorldMethod 时发生的第二次执行的一部分进行评估,而不是在第一次执行 executeJavaScriptAndReturnValue 期间。


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 263 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信