How to parse JSON in coldfusion
Parses the json object and displays the contents of its arrays using DeserializeJSON,
This function is useful any time a ColdFusion page receives data as JSON strings.
I Type Json:
<cfoutput>
<cfset JsonData='[{"reason": "email address is unknown", "email": "abc@hotmail.comh"},
{"reason": "email address is unknown", "email": "bbc@68gmail.com"},
{"reason": "email address is unknown", "email": "ff@ff.com"},
{"reason": "Known bad domain", "email": "rr@hotmai.com"},
{"reason": "email address is unknown", "email": "ll@pp.rr.com"}]'>
<cfset JsonData=REReplace(JsonData,"^\s*[[:word:]]*\s*\(\s*","")>
<cfset JsonData=REReplace(JsonData, "\s*\)\s*$", "")>
<cfset cfData=DeserializeJSON(JsonData)>
<cfloop from="1" to="#arraylen(cfData)#" index="i">
#cfData[i].email# - #cfData[i].reason#<br />
</cfloop>
</cfoutput>
II Type Json:
<cfoutput>
<cfset JsonData='[{"reason": "email address is unknown", "email": "abc@hotmail.comh"},
{"reason": "email address is unknown", "email": "bbc@68gmail.com"},
{"reason": "email address is unknown", "email": "ff@ff.com"},
{"reason": "Known bad domain", "email": "rr@hotmai.com"},
{"reason": "email address is unknown", "email": "ll@pp.rr.com",
"errors": [{"error": "Known bad domain1"},{"error": "Known bad domain2"},{"error": "Known bad domain3"}]
},{"reason": "email address is unknown", "email": "mms@pp.rr.com"}]'>
<cfset JsonData=REReplace(JsonData,"^\s*[[:word:]]*\s*\(\s*","")>
<cfset JsonData=REReplace(JsonData, "\s*\)\s*$", "")>
<cfset cfData=DeserializeJSON(JsonData)>
<cfloop from="1" to="#arraylen(cfData)#" index="i">
#cfData[i].email# - #cfData[i].reason#<br />
<cfif StructKeyExists(cfData[i],'errors')>
<!---<cfdump var="#cfData[i].errors#">--->
<cfloop from="1" to="#arraylen(cfData[i].errors)#" index="j">
#cfData[i].errors[j].error# <br />
</cfloop>
</cfif>
</cfloop>
</cfoutput>
This function is useful any time a ColdFusion page receives data as JSON strings.
I Type Json:
<cfoutput>
<cfset JsonData='[{"reason": "email address is unknown", "email": "abc@hotmail.comh"},
{"reason": "email address is unknown", "email": "bbc@68gmail.com"},
{"reason": "email address is unknown", "email": "ff@ff.com"},
{"reason": "Known bad domain", "email": "rr@hotmai.com"},
{"reason": "email address is unknown", "email": "ll@pp.rr.com"}]'>
<cfset JsonData=REReplace(JsonData,"^\s*[[:word:]]*\s*\(\s*","")>
<cfset JsonData=REReplace(JsonData, "\s*\)\s*$", "")>
<cfset cfData=DeserializeJSON(JsonData)>
<cfloop from="1" to="#arraylen(cfData)#" index="i">
#cfData[i].email# - #cfData[i].reason#<br />
</cfloop>
</cfoutput>
II Type Json:
<cfoutput>
<cfset JsonData='[{"reason": "email address is unknown", "email": "abc@hotmail.comh"},
{"reason": "email address is unknown", "email": "bbc@68gmail.com"},
{"reason": "email address is unknown", "email": "ff@ff.com"},
{"reason": "Known bad domain", "email": "rr@hotmai.com"},
{"reason": "email address is unknown", "email": "ll@pp.rr.com",
"errors": [{"error": "Known bad domain1"},{"error": "Known bad domain2"},{"error": "Known bad domain3"}]
},{"reason": "email address is unknown", "email": "mms@pp.rr.com"}]'>
<cfset JsonData=REReplace(JsonData,"^\s*[[:word:]]*\s*\(\s*","")>
<cfset JsonData=REReplace(JsonData, "\s*\)\s*$", "")>
<cfset cfData=DeserializeJSON(JsonData)>
<cfloop from="1" to="#arraylen(cfData)#" index="i">
#cfData[i].email# - #cfData[i].reason#<br />
<cfif StructKeyExists(cfData[i],'errors')>
<!---<cfdump var="#cfData[i].errors#">--->
<cfloop from="1" to="#arraylen(cfData[i].errors)#" index="j">
#cfData[i].errors[j].error# <br />
</cfloop>
</cfif>
</cfloop>
</cfoutput>
Comments
Post a Comment