我想将 Nashorn 中运行的 js 脚本中的 JSON 对象存储在 MongoDB 中,并再次取回它们。 提供的 API 函数如下所示:
db.put("key", {"mykey":[1,2,3]})
var result = db.get("key")
有两个问题我不知道如何处理:
- 在 Java 端,我得到了一个实现 Map 的 ScriptObjectMirror。因此,如果一个 JSON 对象里面有一个数组,那么它就已经被破坏了。
例如
{"key":[1,2,3]} -> {"key": {"0":1, "1":2, "2": 3}}
- 从数据库读取 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/