Coldfusion-将CFIF与JSON数据一起使用

Coldfusion-将CFIF与JSON数据一起使用,json,coldfusion,Json,Coldfusion,我正在使用一个web API,它返回以下数据(这是cfhttp.filecontent的cfdump) 我需要能够阅读此内容并确定服务是否在列表中。比如说, <cfscript> pdata = deserializeJSON(cfhttp.FileContent); </cfscript> <cfif IsDefined(pdata.service1)>Do something</cfif> pdata=反序列化JSON(cfhttp.Fi

我正在使用一个web API,它返回以下数据(这是cfhttp.filecontent的cfdump)

我需要能够阅读此内容并确定服务是否在列表中。比如说,

<cfscript>
pdata = deserializeJSON(cfhttp.FileContent);
</cfscript>

<cfif IsDefined(pdata.service1)>Do something</cfif>

pdata=反序列化JSON(cfhttp.FileContent);
做点什么
但是,我收到了上面代码的一个错误。我最近才开始使用JSON,到目前为止,我已经取得了相当大的成功——但我仍然坚持使用JSON


非常感谢任何指点

它应该是
IsDefined(“pdata.service1”)

使用isDefined()时,CF需要知道您询问的变量的名称。名称是一个字符串,因此传入一个字符串


起初我觉得这有点违反直觉,但JasonDean在评论中把它放在了正确的角度

谢谢!这是一个明显的迹象,我已经看这个太久了,你确实是对的-我错过了报价。别担心,别忘了接受。:)这种情况经常发生在我身上,CF错误处理在大多数情况下都是非常描述性的,可以告诉你出了什么问题。我认为这一点都不违反直觉。使用isDefined()时,CF需要知道您询问的变量的名称。名称是一个字符串,因此传入一个字符串。它怎么能期望传入一个变量呢?如果变量不存在,如何传入?这一切都取决于你对它的看法。@JasonDean谢谢,我从来没有这样想过,但这是有道理的。我没有接受过正式的CF培训,只是深陷其中。我在答案中添加了这些信息。幸运的是,这个问题比其他问题更容易发现。但以后,请始终发布错误消息。当人们不必“猜测”问题是什么时,得到答案所需的时间将少得多。建议使用StructKeyExists而不是IsDefined<代码>…
<cfscript>
pdata = deserializeJSON(cfhttp.FileContent);
</cfscript>

<cfif IsDefined(pdata.service1)>Do something</cfif>