当前位置: 首页 > 知识库问答 >
问题:

访问复杂的Javascript对象在JavaGraalVM

孟佑运
2023-03-14

我有一个用例,我有一个java Map,我转换成ProxyMap,在javascript中使用该映射,使用context.eval,然后在js(嵌套json)中创建一个新对象。现在我想使用在javascript中创建的对象,最好是一个Map。

现在我的js创建的对象是动态的,我不知道所有的字段可能会出现。

所以我现在做的基本上是:

  1. context.get绑定("js"). put成员("输入", ProxyObject.fromMap(map));
  2. 值js=context.eval("js","var obj={'a':输入['type']};");
  3. 现在我需要得到这个obj作为Java中的Map。

我发现,我可以使用getMember访问java中的obj字段,但由于obj可以是动态的,也可能非常复杂,我希望有另一种解决方法?

共有1个答案

韶宏邈
2023-03-14

您可以使用Value.as(Map.class)方法转换为Map

比如:

 assert context.eval("js", "({foo:'bar'})").as(Map.class).get("foo").equals("bar");
 类似资料:
  • 问题内容: 问题答案: 你不能 JavaScript中没有向上关系。 举个例子: 现在,单个数组对象具有两个“父级”。 您可以做的是:

  • 问题内容: 我有以下JS对象: 我需要在上述对象上执行此SQL查询: 结果应为: 因为只有该组包含在查询中使用的两个ID。 我找到了有关SQLike和JSLINQ的信息,但是我 在哪里 以及 有 表达式时遇到了问题。是否有可能使用SQL-JS库或JS / jQuery本身(编写函数等)在javascript对象上执行此类查询? 问题答案: Alasql JavaScript SQL库是专门为此类任

  • 问题内容: 就像是 这是我想象的格式,但事实并非如此。什么会退回到对象的父级? 问题答案: JavaScript本身不提供此功能。而且我怀疑您是否可以创建这种类型的功能。例如: 鲍比属于谁?

  • 可能的重复: 我有一个嵌套的数据结构/JSON,我如何访问一个特定的值? 我有一个在JSON数组中返回嵌套对象的服务。我如何在对象中循环并打印所需的数据? 这是我的结果: 这是我要为每个项目(项目1,项目2,项目3,...)打印的内容: 到目前为止我试过: 这只返回“item1”、“item2”等,但我不知道如何访问sourceUuid等

  • 可能重复: 对象文字声明中的自引用 有没有办法在同一对象文本中访问属性名的值?类似这样的事情:

  • 26.4 访问者模式与组合模式联用 在访问者模式中,包含一个用于存储元素对象集合的对象结构,我们通常可以使用迭代器来遍历对象结构,同时具体元素之间可以存在整体与部分关系,有些元素作为容器对象,有些元素作为成员对象,可以使用组合模式来组织元素。引入组合模式后的访问者模式结构图如图26-4所示:          需要注意的是,在图26-4所示结构中,由于叶子元素的遍历操作已经在容器元素中完成,因此要