【问题标题】:Enable Null Support issue in ColdFusion 2018在 ColdFusion 2018 中启用空支持问题
【发布时间】:2019-10-01 06:22:35
【问题描述】:

我正在设置 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 中,当我尝试访问此变量时,它会引发错误

变量姓氏未定义

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

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

【问题讨论】:

    标签: coldfusion coldfusion-2018


    【解决方案1】:

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

    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 的变量。"

    【讨论】:

    • 感谢您的回复。我显然误解了 CF Admin 中的设置。就返回 null 的 JSON 结果而言,遗憾的是 CF 将其返回为“未定义”(在尝试访问它时又会引发错误),而不仅仅是一个空字符串(不会引发错误)。我编写了一个函数来用空字符串替换 null。
    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 2018-06-29
    相关资源
    最近更新 更多