1

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

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

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

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

变量 LastName 未定义

如果您在 CF Admin中选中Enable Null Support复选框,似乎并没有什么不同。我试过选择它,取消选择它,甚至在每次更新后重新启动 CF。

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

4

1 回答 1

0

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

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-cd/DeserializeJSON.html 从 ColdFusion 10 开始,JSON 空值变得未定义。

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

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

isNull 和 isDefined 函数对具有空值的变量返回 true。早些时候,isNull 函数的输出与 isDefined 函数的输出相反,但现在它会检查值为 null 的变量。”

于 2019-10-07T07:55:22.693 回答