如何在ColdFusion中检查对象的值是否为空

问题描述:

我有一个名为jsonJobsOpen的对象,当我转储它时,输出显示如下所示的此Object的值。如何在ColdFusion中检查对象的值是否为空

[{ 
    "APPLICATIONCOUNT":0, 
    "JOBNAME":"Candidate Migration Job ", 
    "JOBID":"15433AAE-8631-FA8B-AEA7-49E116EF60E1 ", 
    "JOBCLOSEDATE":" ", 
    "JOBSTATUSLABELVALUE":"Incomplete", 
    "ENCRYPTEDURLAPPCOUNT":"event=cms.listApplicantsPersistVars&JobID=15433AAE-8631-FA8B-AEA7-49E116EF60E1&JobAppStatusID=DCA85CD5-A134-7A4B-30E8-49E116F0D702", 
    "JOBOPENDATE":" ", 
    "APPLIEDAPPCOUNT":0, 
    "JOBSTATUSLABELCOLOUR":"D8605F", 
    "REFERENCE":"Candidate Migration Job ", 
    "ENCRYPTEDURL":"event=jm.gotoJCW&JobID=15433AAE-8631-FA8B-AEA7-49E116EF60E1", 
    "ENCRYPTEDURLCANDIDATEASSESSMENT":"event=jm.gotoJCW&JobID=15433AAE-8631-FA8B-AEA7-49E116EF60E1", 
    "ENCRYPTEDURLAPPLICANTLIST":"event=cms.listApplicantsPersistVars&JobID=15433AAE-8631-FA8B-AEA7-49E116EF60E1" 
}] 

如果没有与对象关联的值则转储看起来是这样的:

[{ 
    "JOBID":"", 
    "JOBOPENDATE":"", 
    "JOBCLOSEDATE":"", 
    "JOBNAME":"", 
    "REFERENCE":"", 
    "ENCRYPTEDURL":"", 
    "APPLICATIONCOUNT":"", 
    "ENCRYPTEDURLAPPLICANTLIST":"", 
    "ENCRYPTEDURLCANDIDATEASSESSMENT":"", 
    "JOBSTATUSLABELVALUE":"", 
    "JOBSTATUSLABELCOLOUR":"", 
    "APPLIEDAPPCOUNT":"", 
    "ENCRYPTEDURLAPPCOUNT":"" 
}] 

我在这里的问题是,我可以用什么条件来检查值是有或没有与此对象在ColdFusion中?

From Leigh's answer here

在JSON,所述[]表示阵列和{}的结构(或对象)。所以你的输入实际上是一个结构数组。你需要使用一个数组环......

<cfset arrayOfStructs = deserializeJson(jsonJobsOpen)> 
<cfloop array="#arrayOfStructs#" index="thisValue"> 
    <!--- Now you can use this condition to check for empty values ---> 
    <cfif StructKeyExists(thisValue, "JOBID") and Len(thisValue.JOBID) GT 0> 
    ... 
</cfloop> 

我做了两件事情在那里。首先将JSON字符串反序列化为ColdFusion可以处理的内容(一组结构体)。然后检查JOBID字段是否存在。如果它确实存在,那么还要检查它的长度是否大于0(非空)。

你应该能够为每一个元素(假设包含此JSON您的变量的名称是jsonJobsOpen做这样的事情。

这里是一个快速ColdFusion Gist出使用您的数据的示例。

+0

...你做了我的一天...非常感谢... –

+0

@abhikumar我很高兴它帮助你。不要忘记标记这个答案,以便别人看到它。 –