coldfusion variables

I have a URL query parameter string that is:
I want it to be
Is there a way to do this without replacing text.
I tried URLDecode but it didn't work.
Who is Participating?
_agx_Connect With a Mentor Commented:
It'll only work IF you changed the url string to pass a JSON string for the #url.fq# parameter. (It won't work with your original value because it's not a valid json string. )  If you are passing a json string, then make sure you urlencoded the value:

            ie   somePage.cfm?fq=#URLEncodedFormat(serializeJSON(someStruct))#"

If you can't change it to pass JSON, you'll have to use the 1st approach instead.
What result did you get? Because it works fine for me
Hey try using 'unescape()' javascript function.

You can also refer below link:
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

cbeverlyAuthor Commented:
My problem is I have a list below that I want to loop through using comma as a delimiter which works fine until it gets to "Catlin,George" and then it thinks there are 2 separate entities instead of one. I want the list to be  separated out into 1. object_type 2. topic 3. name 4. place 5. onPhyscialExhibit and 6.culture  I don't know what else to use for a delimiter.
 object_type:"Paintings",topic:"Frontier",name:"Catlin, George",place:"United States",onPhysicalExhibit:"Yes",culture:"Indians of North America"
CF list functions accept other delimiters besides a comma. So if you're creating the original list, you could use any delimiter you want, like "|" or "~" or even non-printable characters.


object_type:"Paintings"|topic:"Frontier"|name:"Catlin, George"|place:"United States"|onPhysicalExhibit:"Yes"|culture:"Indians of North America"

<cfset params = {}>
<cfloop list="#yourString#" index="elem" delimiters="|">
      <cfif listLen(elem, ":") eq 2>
            <cfset theName = listFirst(elem, ":")>
            <cfset theValue = replace(listLast(elem, ":"), '"', "", "all")>
            <cfset params[theName] = theValue>
<cfdump var="#params#">
Even simpler, format the list values as a JSON string:

ie YourString:
{"place":"United States","name":"Catlin, George","culture":"Indians of North America","object_type":"Paintings","topic":"Frontier","onPhysicalExhibit":true}

Then you can deserialize it into a CF structure with just:

             <cfset paramsAsStruct = deserializeJSON(yourString)>
cbeverlyAuthor Commented:
When I try #SerializeJson(url.fq)#
I am getting this below not the string you have. "place:\"United States\",name:\"Catlin, George\",culture:\"Indians of North America\","object_type:\"Paintings\",topic:\"Frontier\""
No assuming #url.fq# contains a json string, you want to DEserialize, not serialize. Deserializing will convert the json string back into a CF structure.

     <cfset paramsAsStruct = deserializeJSON( url.fq )>
cbeverlyAuthor Commented:
When I try deserializeJSON(url.fq) I get this error message:

JSON parsing failure at character 1:'p' in place:"United States",culture:"Indians of North America",object_type:"Paintings"
cbeverlyAuthor Commented:
Thank you for your help. I attacked the problem from a different approach so I am not going to use the code I posted.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.