के माध्यम से स्ट्रिंग के रूप में एक स्ट्रक्चर पास करना क्या यूआरएल में उपयोग के लिए एक स्ट्रिंग के रूप में एकल स्तर की संरचना को क्रमबद्ध करने का कोई आसान तरीका है?कोल्डफ्यूजन: यूआरएल
?key1=val1&key2=val2
के माध्यम से स्ट्रिंग के रूप में एक स्ट्रक्चर पास करना क्या यूआरएल में उपयोग के लिए एक स्ट्रिंग के रूप में एकल स्तर की संरचना को क्रमबद्ध करने का कोई आसान तरीका है?कोल्डफ्यूजन: यूआरएल
?key1=val1&key2=val2
<cfscript>
// create simple struct
x = { a=1, b=2, c=3 };
WriteDump(x);
// serialize in JSON format and encode for URL transport
y = URLEncodedFormat(SerializeJSON(x));
WriteOutput('url: <a href="#SCRIPT_NAME#?z=#y#">#SCRIPT_NAME#?#y#</a>');
// now receive the URL variable and dump it
if (StructKeyExists(url, 'z')) {
writeOutput('<h3>URL Data:</h3>');
writeDump(DeserializeJSON(URLDecode(z)));
}
</cfscript>
यह कैसे दिखता है:
उदाहरण के लिए?
<cfset tmpStruct = {"firstItem" = "one", "secondItem" = "two"} />
<cfset myUrl = "http://domain.com/file.cfm?" />
<cfloop list="#structKeyList(tmpStruct)#" index="i" >
<cfset myUrl = myUrl & i & "=" & tmpStruct[i] & "&" />
</cfloop>
<cfset myUrl = left(myUrl,len(myUrl)-1) />
<cfdump var="#myUrl#" />
काफी अच्छा वास्तव में :) – Daniel
मत भूलना आप उपयोग कर सकते हैं भी सूची कार्य (tmpStruct में महत्वपूर्ण) { \t myUrl = listAppend (myURL, कुंजी और "=" और URLEncodedFormat (tmpStruct के लिए अर्थात ' [कुंजी]), "&"); \t}' दोनों काम, हालांकि जेसन दृष्टिकोण मेरे आलसी प्रोग्रामर से अपील करता है;) – Leigh
मुझे लगता है कि मेरे समाधान के बारे में केवल एक ही बात यह है कि यह और भी जटिल संरचनाओं के साथ काम करता है। पॉल मेरे से तेज़ी से टाइप करता है!: डी – BKK
मैंने इस समाधान के बारे में भी सोचा था। जैसा कि आपने उल्लेख किया है उतना मजबूत है जटिल संरचनाओं को संभाल सकता है लेकिन y कहां हमेशा प्रत्येक प्राप्त पृष्ठ पर जेसन को जेएसओएन करना है, मैंने इस उदाहरण में बहुत कुछ किया है लेकिन फ़ॉर्म के माध्यम से: http://stackoverflow.com/questions/10392604/coldfusion-serializejson-example/10392839#10392839 – Paul
ग्रेट उत्तर, बेन! –