【问题标题】:pass java object from javascript to java将 java 对象从 javascript 传递给 java
【发布时间】:2014-10-07 04:48:41
【问题描述】:

是否可以将用 Javascript 创建的对象传递给 java?

例如,我有一个名为 myPojo 的 POJO,其中包含属性名称和地址

对象是用Javascript创建的:

var myPojo = new Packages.CreatePOJO();

myPojo.setName("Alpha");

然后我将它传递给一个 java 函数

var replacer = new Packages.VelocityReplace(); replacer.replace("一个模板", myPojo);

替换类是这样的。

公共类 VelocityReplace { public static String replace(String templateStr, Object in) 抛出异常 { ... }

产生的异常是:

Wrapped java.lang.ClassCastException: org.mozilla.javascript.NativeObject 无法转换为 CreatePOJO

我正在使用 Mirth Connect,它是一个实时接口引擎,它提供数据并将数据推送到 myPojo 对象。它使用 javascript 编写脚本,这就是为什么我需要将数据从 javascript 推送到 java。

【问题讨论】:

  • 您的 Java 是否在您页面上的小程序中运行?还是在您的网络服务器上?
  • 它在服务器上,不是web服务器而是接口服务器,但数据切换我猜是类似的。

标签: java javascript mirth


【解决方案1】:

可能使用 JSON。我假设您不想将函数作为对象的一部分从 JS 传递到 Java。 Java JSON 库包括 GSON、Jackson 等。

【讨论】:

  • 所以基本上在 java 变量上使用 toJSON() 函数将其转换为 JSON,然后将其传递给 Java,然后在我调用的 Java 函数中使用 fromJSON 将其转换回原始对象?
  • 这行得通。在 javascript 中这样做: var gson = new Packages.com.google.gson.Gson(); var JSONstr = gson.toJson(myPojo);在java中这样做: Gson gson = new Gson(); POJO myPOJO = gson.fromJson(in, POJO.class);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 2018-01-08
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多