访问结构"键"时处理WhiteSpaces

1 coldfusion

请考虑以下图片: 在此输入图像描述

那么,我如何正确访问结构中的"Android Phone"键.当我执行以下操作时(摘自我的代码):

<cfloop from="1" to="#arraylen#" index="i">


        <cfif structKeyExists(cfData[i], "open")>
        <cfoutput>#cfData[i].open.AOL#</cfoutput>

      <cfelse>
         NULL
      </cfif>

    </cfloop>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试<cfoutput>如下时,它工作正常:

<cfoutput>#cfData[i].open.Android Phone#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

要么

<cfoutput>#cfData[i].open.AndroidPhone#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

元素OPEN.ANDROIDPHONE在作为表达式的一部分引用的CFML结构中未定义.

错误发生在C:myfile.cfm:第185行

183 :         <!--- <cfloop list="#KeyList#" index="colItem"> --->    
184 :         <cfif structKeyExists(cfData[i], "open")>
185 :         <cfoutput>#cfData[i].open.AndroidPhone#</cfoutput>
186 :         
187 :       <cfelse>
Run Code Online (Sandbox Code Playgroud)

问题2:我遇到了一个更奇怪的现象:

当我输出如下值时:

<cfoutput>#cfData[i]["open"]["Android Phone"]#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

 <cfoutput>#cfData[i]["open"]["Android Tablet"]#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

但是,当我将其更改为以下内容时:

<cfoutput>#cfData[i]["open"]["Lotus Notes"]#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

元素Lotus Notes在作为表达式的一部分引用的CFML结构中未定义.

The error occurred in C:myfile.cfm: line 185

183 :             
184 :         <cfif structKeyExists(cfData[i], "open")>
185 :         <cfoutput>#cfData[i]["open"]["Lotus Notes"]#</cfoutput>
186 :         
187 :       <cfelse>
Run Code Online (Sandbox Code Playgroud)

它是否只适用于一系列与空间相关的键而不适用于单字键后出现的键?请指教.

Dig*_*ris 5

在这种情况下,由于空间不能使用点表示法,因此必须使用括号引号表示法:

<cfoutput>#cfData[i]["open"]["Android Phone"]#</cfoutput>
Run Code Online (Sandbox Code Playgroud)