编写一个逻辑来检查值是否存在

moo*_*rad 2 coldfusion coldfusion-11 lucee

处理代码返回的数据

尝试添加一些逻辑,如果该值存在,则显示它,否则将其清空

<cfset myStruct = {
    "access_token" : "#st.access_token#",
    "id": "#res.names[1].metadata.source.id#",
    "name" : "#isDefined('res.names') ? res.names[1].displayname : ''#",
    "other" : {
        "email" : "#res.emailAddresses[1].value#"
    }
}>
Run Code Online (Sandbox Code Playgroud)

在新窗口中打开

它不干净,并且在第 3 行(即 ID)上引发错误,因此如果存在,我可以编写什么样的 isDefined 或 structkeyexists 添加它,否则放置一个空值

Thu*_*Tat 5

你可以尝试Elvis操作员

编辑:除非您确实需要将值作为字符串,否则不需要使用磅来输出值

编辑 2:已更新示例以使用正确的注释

<cfset myStruct = {
      "access_token" : "#st.access_token#" <!--- If you have numeric token and need it to be a string --->
    , "id"           : res.names[ 1 ].metadata.source.id ?: ""
    , "name"         : res.names[ 1 ].displayname        ?: ""
    , "other"        : {
        "email" : res.emailAddresses[ 1 ].value ?: ""
    }
}>

Run Code Online (Sandbox Code Playgroud)

  • 好吧,首先我不知道大写字母是大喊大叫,我的第一母语不是英语,所以我无意伤害任何人的感情 (3认同)