1

我正在尝试从我的 ant rhino 中的对象生成 JSON。JSON.stringify(obj) 不受支持,但有一个 NativeJSON 类具有 stringify 方法。但问题是如何从 Ant/Rhino 调用它?我可以掌握上下文,但我不知道如何掌握范围。这似乎也比它应该的更复杂,所以也许有一个更直接的解决方案?

这绝对是相关的,除了它不处理从 Ant 使用 this (它没有明显暴露的上下文/范围): Access Rhino's native JSON.Stringify from Java

NativeJSON.stringify(cx, scope, jsObject, null, null);
4

2 回答 2

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>
于 2013-09-05T13:33:53.780 回答
0

对于像我这样遇到这个问题的人,Rhino 版本 1.7R5+ 现在支持 JSON.stringify。

所以 JSON.stringify 将在正常的脚本块中工作:

<script>
<![CDATA[
   JSON.stringify(obj);
]]
</script>
于 2017-04-05T14:04:34.247 回答