我在这个项目中使用Rhino的javax.scripting。
我有一个Java方法可返回Java对象(Double,Long,Integer等)。我想从javascript调用该方法,并将结果作为Javascript基本类型引用。但是,javacript会将返回类型识别为Object。
如何强制将其转换为JavaScript原语?
这个问题与http://groups.google.com/group/mozilla.dev.tech.js-
engine.rhino/browse_thread/thread/2f3d43bb49d5288a/dde79e1aa72e1301
非常相似
问题在于如何获取上下文和WrapFactory的引用?
样例代码:
public class data
{
Double value = 1.0d;
public Number get() { return value; }
}
public static void main(String[] args)
{
ScriptEngine engine = new ScriptEngineManager().getEngineByName ("rhino");
data data = new data();
try
{
engine.eval("function test(data) { return data.getD('value1') + 5;};");
System.out.println("Result:" + ((Invocable)engine).invokeFunction("test", data));
}
catch (Exception e)
{
e.printStackTrace();
}
}
输出:结果:15
尝试以下
public static void main(String [] args) throws Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName ("rhino");
data data = new data();
Context.enter().getWrapFactory().setJavaPrimitiveWrap(false);
try
{
engine.eval("function test(data) { return data.get('value1') + 5;};");
System.out.println("Result:" + ((Invocable)engine).invokeFunction("test", data));
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static class data
{
Double value = 1.0d;
public Number get(String arg) { return value; }
}
另外,您可以修改javascript函数以将值显式转换为数字:
function test(data) { return parseInt(data.get('value1'), 10) + 5;}
我有一个这样的Html字符串: 我需要将此 html 字符串转换为脚本中的对象。也就是说,当在jquery中使用方法时,我应该得到相同的对象结果。我尝试了这样的事情: 但是没有用。我应该在javascript中使用什么方法将HTML字符串转换为对象符号?我应该得到对象形式的每个子节点。我不想在这个解决方案中使用Jquery。我期待控制台中显示的确切输出
问题内容: 当屏幕抓取某些网站时,我从标签中提取数据。 我得到的数据不是标准格式。我不能使用。 目前,我用于将原始数据转换为格式。 但是,当我遇到复杂的数据结构时,我感到非常糟糕。 您有更好的解决方案吗? 问题答案:
问题内容: 假设您网站的用户输入了日期范围。 您需要将此日期发送到服务器进行某些处理,但是服务器希望所有日期和时间都采用UTC。 现在,假设用户位于阿拉斯加,夏威夷或斐济。由于它们所处的时区与UTC完全不同,因此需要将日期范围转换为以下形式: 使用JavaScript Date对象,您如何将第一个“本地化”日期范围转换为服务器可以理解的范围? 问题答案: 该方法返回简化的扩展ISO格式(ISO86
我正在使用一个实现自己的Array类的JDBC库。为了使用所述Array,他们将其转换为Object[]。 https://github.com/housepower/ClickHouse-Native-JDBC/blob/master/src/test/java/com/github/housepower/jdbc/QueryComplexTypeITest.java#L120 我使用的是Clo
所以我想知道怎么才能把一个芬的ID转换到棋盘上。 代码: 我很感激我得到的任何帮助。如果你需要更多的信息,请告诉我。
上传图像API需要二进制流。我尝试了新的及其方法,但它不起作用!二进制字符串和二进制流似乎不是一回事,所以我改变了我的方式,尝试了方法(因为我需要预览图像),现在我想知道: 1)如何使用JS将转换为二进制流? 当我使用时,响应如下(数据A):