如何在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中?
答
在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出使用您的数据的示例。
...你做了我的一天...非常感谢... –
@abhikumar我很高兴它帮助你。不要忘记标记这个答案,以便别人看到它。 –