1

我真的需要帮助。在过去的 2 或 3 个小时里,我试图简单地在 freemarker 中列出一个带有 javascript 支持的 webscript 的 JSON 对象,但没有运气。

让我们将我的脚本命名为 x,所以:

x.get.js

function main(){
    //model.data = {'name':'Test Object','size':100};
    model.data={
        "2012": {
            "A": {
                "a": "on",
                "b": "off",
                "list": [
                    1,
                    2,
                    3,
                    4
                ]
            }
        },
        "2013": {
            "B": {
                "c": "on",
                "d": "off"
            }
        }
    };

   logger.log(jsonUtils.toJSONString(model.data));
}

main();

x.get.html.ftl

<#assign keys = data?keys>
<#list keys as tag>
   ${jsonUtils.encodeJSONString(tag)}<#if tag_has_next>,</#if>
</#list>

当我尝试仅使用第一个 model.data(已注释掉)时,它工作正常,并且记录器写出完整的 JSON,我在呈现的 HTML 中得到“名称,大小”。

但是,当我这样尝试时,我在呈现的 HTML 中什么也得不到,并且记录器会说一些奇怪的事情:

 {"2012":"org.mozilla.javascript.UniqueTag@1a31e0a: NOT_FOUND","2013":"org.mozilla.javascript.UniqueTag@1a31e0a: NOT_FOUND"}

所以呢?这个 JSON 也是有效的,所以我错过了一些对话或神秘的功能或什么?

谢谢您的帮助

J。

4

1 回答 1

0

通常你应该使用 js 中的正常对象/值填充你的模型,并在你的 ftl 模板 x.get.json.ftl 中生成 json

于 2013-07-04T09:14:17.487 回答