传递给CFC时未定义JSON键

时间:2012-05-31 14:40:06

标签: json coldfusion cfc

我正在传递一个CFC JSON,并且有一个可能存在或不存在的密钥。所以,我正在用isDefined检查它,但无论出于何种原因,coldfusion认为它不存在,何时,从我所看到的显而易见的。我已经尝试了所有我能想到的东西,但现在我对这个问题感到茫然。

这是从Firebug中提取的JSON:

[{"type":"USEQUIT","date":"01/01/2011"}] //the date, may or may not exist

这是CFC功能唯一重要的部分:

<cfargument name="attribs">
//debugging code
<cfif isDefined("attribs.date")>
    <cfdump var="date here">
<cfelse>
    <cfdump var="date not here">
</cfif>

我在其他功能中执行此操作,它工作正常,但无论出于何种原因,我无法在此处工作。我假设我做错了什么,但我无法理解,所以我问社区。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

CF看到您以纯文本字符串传递的json,直到您在其上调用deselializeJSON():

<cfargument name="attribs">
//debugging code
<cfset var ds_attribs = deserializeJSON(arguments.attribs)>
<cfif structKeyExists(ds_attribs[arrayLen(ds_attribs)], "date")>
    <cfdump var="date here">
<cfelse>
    <cfdump var="date not here">
</cfif>