我正试图从我的ant rhino中的一个对象生成JSON。不支持JSON.stringfy(obj),但有一个NativeJSON类具有stringify方法。但问题是如何从Ant/Rhino中调用它?我可以掌握上下文,但我不知道如何掌握范围。这似乎也比应该的更复杂,所以也许有一个更简单的解决方案?
这肯定是相关的,除了它不涉及使用Ant中的这个(它没有明显暴露的上下文/范围):Access Rhino';s原生JSON.Stringify来自Java
NativeJSON.stringify(cx, scope, jsObject, null, null);
我使用了以下内容,而不是标准的ant script/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>
对于像我这样遇到这个问题的人来说,JSON.stringify现在在Rhino 1.7R5+版本中得到支持。
所以JSON.stringify将在正常的脚本块中工作:
<script>
<![CDATA[
JSON.stringify(obj);
]]
</script>