在ColdFusion 2018中启用Null支持问题

时间:2019-10-01 06:22:35

标签: coldfusion coldfusion-2018

我正在设置ColdFusion 2018(带有Update 5),并且遇到了问题-似乎CF Admin中的“启用Null支持”选项没有任何作用。

我有一些API结果(来自第三方api)可以返回空值-例如; json

{
  "FirstName": "Fred",
  "LastName": null,
  "Email": "test@test.com"
}

当我deserializeJson( theResult )cfdump结构时,它的姓氏值为“ undefined”。在ColdFusion 9(我将其移植到CF2018)中,在上面给出的示例中,执行cfdump时,LastName的值显示为“ null”。我的问题是在CF2018中,当我尝试访问此变量时会抛出错误

  

变量姓氏未定义

如果您不勾选CF管理员中的启用Null支持复选框,似乎没有什么不同。我尝试选择它,取消选择它,甚至在每次更新后重新启动CF。

这是一个错误吗?我正在使用带有更新5(版本2018.0.05.315699)的CF2018。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

“在ColdFusion 2018之前,来自数据库/ JSON的空值变为空字符串。因此,我们无法区分NULL与EMPTY值方案。 为了支持基于null的实现,新版本在ColdFusion 2018中引入了null作为语言更改的一部分。

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-c-d/DeserializeJSON.html 从ColdFusion 10开始,JSON空值变得不确定。

在ColdFusion 2018中启用Null支持是不同的,它与JSON数据处理中的null值无关。

只有isNull和isDefined函数的行为会随上述设置而变化。

对于具有空值的变量,isNull和isDefined函数返回true。 以前,isNull函数的输出与isDefined函数的输出相反,但是现在它检查值是否为null的变量。”