1

我正在使用J2V8 项目的 NodeJS 接口在 Akka Actor 内部创建一个脚本沙箱(使用来自 Akka-Http 的 spray.json.JsObject 库用 Scala 编写)。我有架构的 json 海岸到海岸设计。

我在actor(scala代码)的范围内有JSON对象,并且想要一种通过V8Objects将这些对象传入和传出nodejs脚本的自然方式。我有将 json 对象作为字符串传递的代码,但每个脚本都需要执行 JSON.parse() 调用。

斯卡拉:

import spray.json.{JsObject, JsString, JsValue}
import com.eclipsesource.v8._

// take a native json object
val text: JsObject = JsObject("key", JsString("value"))
// add it's stringified version to the runtime
nodeJS.getRuntime.add("text", text.compactPrint) 

Javascript:

var msgObj = JSON.parse(text);

有没有办法使用 J2V8 API 更简单地在 Json 和 V8Objects 之间来回编组?

未来自我的注意事项:我正在探索 Scala 中的 J2V8 作为运行 Nashorn 以获得服务器端脚本支持的替代方案。使用 Nashorn,我发现 99% 的 javascript 库都无法工作,因为它们依赖于 DOM 对象。使用 V8 的 NodeJS 接口,我能够加载/使用标准节点模块,如 http/https 和加密。

4

0 回答 0