我正在尝试从我的ant rhino中的对象生成JSON。不支持JSON.stringify(obj),但有一个NativeJSON类具有stringify方法。问题是如何从Ant / Rhino调用它?我可以掌握上下文,但我不知道如何掌握范围。这似乎也应该比它应该更复杂,所以也许有一个更简单的解决方案?
这绝对是相关的,除了它没有处理从Ant中使用它(它没有明显暴露的上下文/范围): Access Rhino's native JSON.Stringify from Java
NativeJSON.stringify(cx, scope, jsObject, null, null);
答案 0 :(得分:0)
我使用以下代替标准的ant脚本/ javascript标记。这允许调用JSON.stringify。
<sequential>
<script language="javascript" manager="bsf">
<classpath>
</classpath><![CDATA[
var shell = org.mozilla.javascript.tools.shell.Main;
var args = ["-e","var a='STRING';"];
shell.exec(args);
var shellGlobal = shell.global;
@{text}
]]></script>
</sequential>
</macrodef>
...
<rhinoscript><![CDATA[
JSON.stringify(obj);
]]</rhinoscript>
答案 1 :(得分:0)
对于那些遇到此问题的人来说,现在Rhino版本1.7R5 +支持JSON.stringify。
所以JSON.stringify可以在普通的脚本块中运行:
<script>
<![CDATA[
JSON.stringify(obj);
]]
</script>