ColdFusion 10 serializeJSON将是/否字符串转换为布尔值 - 如何阻止它?

Jan*_*net 10 sql-server coldfusion json wsdl coldfusion-10

我有一个存储过程,MS SQL Server,其中一个返回的列是一个字符串,"是"或"否".到现在为止还挺好.我正在ColdFusion 10中创建一个JSON字符串,并最终将其踢到jQuery/Bootstrap以放入表中.如果我调用writeOutput("SP suitable text: " & spResults.rg_suitable_text[i]);SP的输出,(这是一个计算值,而不是TSQL中具有实际数据类型的实际列),它会写出它应该是什么,即是或否.但是,在构造要序列化为JSON的数组rg_suitable_text=spResults.rg_suitable_text[i]时,如果我使用REST客户端用于Google或Firefox并仅查看ColdFusion的原始JSON输出,则显示true/false.我甚至试过创建一个新的变量和硬编码:

var solicit="No";
if(spResults.rg_suitable_text[i] EQ true OR trim(spResults.rg_suitable_text[i]) EQ "true")
{
    solicit="Yes";
}
Run Code Online (Sandbox Code Playgroud)

并将其标记到我的数组上,但同样的事情发生了.看起来ColdFusion 11支持一种解决方法,但这是一个工作项目,所以这不是一个选择.是否有一个我可以对上面的块进行的编辑,可以说,"ColdFusion 10,我不在乎你想要什么,这是一个字符串,并把它当作一个爆破的字符串,dangit!"

Ada*_*ron 3

要回答您的底线问题(您帖子的最后一句话),答案是:

您可以对数据进行修改,以欺骗 ColdFusion 认为它是字符串而不是布尔值,但这不是一个很好的方法。

您基本上需要使用 ColdFusion 以外的其他工具来创建 JSON 字符串。ColdFusion 充斥着 JSON 错误,几乎要求其 JSON 产品不适合用途。我认为,正如您所注意到的,CF11 中发现的大多数错误已得到修复。

我还没有在产品中使用过它,但我使用Google 的 GSON API从 CFML 数据构建 JSON,取得了相当数量的概念验证成功。