Bla*_*ger 5 groovy scriptengine
如何从 groovy 获取执行 javascript 代码的结果?我尝试了以下操作,但我总是返回字符串“world”。我本来期望的是一个物体或地图。
import javax.script.ScriptEngineManager
import javax.script.SimpleBindings
def manager = new ScriptEngineManager()
manager.getEngineByName("JavaScript").eval("""
{hello: name}
""", [name:'world'] as SimpleBindings)
Run Code Online (Sandbox Code Playgroud)
简单的!
您可以将对象映射到变量,然后返回...
import javax.script.*
def bindings = [name:'world']
def response = new ScriptEngineManager()
.getEngineByName('javascript')
.eval("var r = {hello:name}; r;", bindings as SimpleBindings)
println response.hello // -> world
Run Code Online (Sandbox Code Playgroud)
或者您可以跟踪response
Map 对象并更新它......
import javax.script.*
def bindings = [name:'world',response:[:]]
new ScriptEngineManager()
.getEngineByName('javascript')
.eval("var r = {hello:name}; response.data = r;", bindings as SimpleBindings)
println bindings.response.data.hello // -> world
Run Code Online (Sandbox Code Playgroud)
常规版本: 2.4.5
Java版本: 1.8.0_60
归档时间: |
|
查看次数: |
9617 次 |
最近记录: |