【发布时间】:2012-07-18 14:59:42
【问题描述】:
我真的需要帮助。在过去的 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.
【问题讨论】:
-
好的,我解决了!记录器还为以下 json 记录奇怪的事情:
model.data = {'123':'Test Object','size':100};确切地说:{"123":"org.mozilla.javascript.UniqueTag@1a31e0a: NOT_FOUND", 'size' : 100}当控制器脚本被执行时,如果你的字符串中有一个小数(你希望被解释为一个字符串,因为这是一个有效的json!),如“123”,将被解析为十进制!我不知道为什么。我正在寻找答案。 所以不要在字符串字面量中使用整数,作为 JSON 标识符,在玩网络脚本时。
标签: json spring alfresco web-scripting alfresco-share