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

我必须从发送序列化对象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))

提前致谢


慕婉清6462132
浏览 264回答 2
2回答

MMTTMM

您好,这里有两个方面。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 期间。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java