Spring surf javascript 支持的 webscript 和 JSON 对象

Posted

技术标签:

【中文标题】Spring surf javascript 支持的 webscript 和 JSON 对象【英文标题】:Spring surf javascript backed webscript and JSON objects 【发布时间】: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 标识符,在玩网络脚本时。 【参考方案1】:

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

【讨论】:

以上是关于Spring surf javascript 支持的 webscript 和 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

EMGU CV SURF 图像匹配

Spring 4:MappingJackson2HttpMessageConverter 不支持 jsonp 的 application/javascript

matlab中surf啥意思

SURF算子

Surf特征提取分析

Surf的MATLAB函数名