当前位置: 首页 > 面试题库 >

如何强制Coldfusion cfc通过JSON将数字数据输出为字符串?

漆雕彦
2023-03-14
问题内容

我正在使用jQuery.post()调用Coldfusion组件(cfc)。我需要返回的数字的整数或字符串表示形式,以用于URL。

{"PAGE":"My Page Title","ID":19382}
or
{"PAGE":"My Page Title","ID":"19382"}

相反,我得到的是一个小数:

{"PAGE":"My Page Title","ID":19382.0}

需要更新以下HTML:

<a href="page.cfm?id=19382" id="pagelink">My Page Title</a>

从概念上讲,我想有多个答案:

1)我可以使用jQuery来获取小数点左边的数字。

2)我可以强制Coldfusion将数字作为字符串发送。

3)我可以生成整个链接服务器端,而只需替换整个链接标签HTML(不是首选答案,但也许是最好的答案)

有人知道该怎么做1或2吗?3更好吗?

相关Javascript :(未优化)

$(".link").live('click', function () {
    var $linkID, serviceUrl;
    serviceUrl = "mycfc.cfc?method=getPage";
    $linkID = $(this).attr("rel");

    $.post(serviceUrl, { linkid: $linkID }, function (result) { 
        $('#pagelink').val(result.TITLE);
        if (result.FMKEY.length) {
             // NEED the ID number WITHOUT the .0 at the end
             $('#pagelink').attr("href") = "page.cfm?id=" + result.ID;
             $('#pagelink').text(result.TITLE);
        }
    }, "json");
});

我的CFC:

<component output="no">
<cfsetting showdebugoutput="no">
<cffunction name="getPage" access="remote" returnFormat="JSON" output="no" hint="Looks up a Page Title and ID">
    <cfargument name="linkID" type="string" required="yes">
    <cfset var page = queryNew("id,title")>
    <cfset var result = structNew()>
    <cfquery datasource="myDatasource" name="page">
        SELECT TOP 1 id, title
        FROM pages
        WHERE linkID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.linkID#">     
    </cfquery>
    <cfif page.recordcount>
        <cfset result.id = page.id>
        <cfset result.title = page.title>
    </cfif>
    <cfreturn result>
</cffunction>
</component>

问题答案:

parseInt()在JS中使用。Kindda喜欢您的解决方案1,但这比您想象的要容易。

$('#pagelink').attr("href") = "page.cfm?id=" + parseInt(result.ID, 10);

CF默认将123之类的整数序列化为“ 123.0”,但通常对于无类型语言(如JS或CF)都没有关系。

SerializeJSON()(远程功能使用的默认行为)不能被覆盖,但是如果您愿意,可以使用www.riaforge.org的第三方JSON库之一

ps即使浏览到“ something.cfm?id =
123.0”,URL.idCF中的数字也只是EQ到123的一个数值。尽管您的URL看起来有点怪异,但如果将其发布到CF,它仍然可以使用。



 类似资料:
  • 问题内容: 我遇到了一个使用ID来命名类型数组的旧应用,例如… 现在,我需要对它们进行重新排序,并且a 会使得在键为整数的情况下似乎不会发生这种情况。 如果我向每个索引添加,将在键周围显示双引号,我想显示它现在是一个字符串… 这使我可以轻松地对它们进行重新排序,而无需触及更多代码。 这是 行不通的 。 A 仍将它们显示为整数数组索引。 有没有一种方法可以将键强制为字符串,这样我就可以在不破坏数组的

  • 问题内容: 这看起来是如此简单,我必须对此加以考虑。 TL; DR; 如何修改下面的代码以返回字符串中包含的json对象,而不是恰好包含json的字符串? 此代码返回包含json的字符串文字: 但是,我希望它返回字符串中包含的json: 版本稍长 我正在尝试快速制作一些外部api调用的原型,而现在只是想将这些结果通过我的“ api”传递为假响应。json对象很简单- 大约10,000个“行”或90

  • 问题内容: 我想将下面的字符串变量转换为spark上的dataframe。 我知道如何从json文件创建数据帧。 但是我不知道如何从字符串变量创建数据框。 如何将json字符串变量转换为dataframe。 问题答案: 对于Spark 2.2+: 对于Spark 2.1.x: 提示:这是使用重载。它也可以直接读取Json文件。 对于旧版本:

  • 问题内容: 我有一个应用程序,我可以使用我在应用程序中使用的索引以数组&的形式从server(json)中获取数据,如下所示。 对于小尺寸的阵列,我可以得到这样的结果。但是当array包含’n’个元素时,我必须动态地使用它,那时它需要转换为StringArray。有人可以告诉我如何将json数组转换为String数组吗?谢谢 问题答案: 这应该对您有帮助。 编辑: 也许这就是您需要的:

  • 问题内容: 我是Java的新手,我不太确定如何将整数加幂作为字符串输出。我知道 实际上会计算出将双精度数提高到幂的值。但是,如果我想输出“ 2 ^ 6”作为输出(除了6作为上标而不是克拉),我该怎么做? 编辑:这是一个Android应用程序。我以整数形式传递给幂的整数,我想知道如何在手机的UI中将其转换为上标。 问题答案: 如果要将文本输出到GUI,则可以使用HTML格式和标记获取上标。否则,您将

  • 我想通过JavaScript将“base64”字符串转换为字节数组。 我收到来自URL的字符串。 我想把字符串转换成字节数组。因为我需要这个字节数组来发送Rest APIendpoint。rest API content-type=application/octet-stream。