java - 将 JSON 对象从 Nashorn 放入并获取 MongoDB

标签 java nashorn

我想将 Nashorn 中运行的 js 脚本中的 JSON 对象存储在 MongoDB 中,并再次取回它们。 提供的 API 函数如下所示:

db.put("key", {"mykey":[1,2,3]})
var result = db.get("key")

有两个问题我不知道如何处理:

  1. 在 Java 端,我得到了一个实现 Map 的 ScriptObjectMirror。因此,如果一个 JSON 对象里面有一个数组,那么它就已经被破坏了。 例如{"key":[1,2,3]} -> {"key": {"0":1, "1":2, "2": 3}}
  2. 从数据库读取 JSON 对象时,无法对该对象进行 JSON.stringify 处理。它只是返回未定义。是否有可能将 Java 中的 JSON 对象注入(inject)到 Nashorn 中,以便与 JSON.stringify 兼容?

您对我的问题有什么建议吗? 谢谢

最佳答案

在 JS 中,您可以使用 var jsonResult = Java.asJSONCompatible(result)返回一个自定义包装器,其中 JS 数组作为 Java 列表公开。

在 Java 中,您可以使用 ScriptObjectMirror.wrapAsJSONCompatible(obj) .

希望有帮助。

关于java - 将 JSON 对象从 Nashorn 放入并获取 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35967012/

相关文章:

javascript - Nashorn 在 JDK10 Java.type() 中的奇怪行为

Java Nashorn 兼容性文件崩溃

java - ClassCastException NativeRegExpExecResult 无法转换为 NativeArray

Java 中嵌入的 Javascript - 如何转到声明? (Ctrl+B) (Nashorn) (IntelliJ)

java - 将 java 类放入 nashorn 的全局范围

java - Java EE 5 应用服务器中的 CDI 和 Bean 验证?

java - 有没有办法在 GWT 中处理文件而不将其加载到服务器端?

java - Java 1.7 中的符号链接(symbolic link)lastModifiedTime

java - 拦截请求时出错

java - 同时并行执行两个异步任务(我真的需要这个吗?)