2012-06-15 6 views

答えて

19
<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> 
+0

私の解決策について私が言うことができるのは、もっと複雑な構造体で動作するということだけです。ポールは私より速くタイプします!:D – BKK

+0

私はこの解決策についても考えました。あなたが言ったように複雑な構造体を扱うことができますが、y私はこの例では非常によく似た何かを、フォーム経由で行った:http://stackoverflow.com/questions/10392604/coldfusion-serializejson-example/10392839#10392839 – Paul

+0

偉大な答えは、ベン! –

13

これはどのように見えますか?

<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#" /> 
+1

実際:) – Daniel

+4

あなたはすなわち '(tmpStructで鍵)の{ \t myUrl = listAppend((myURL、キー& "=" &URLEncodedFormat tmpStructもリスト機能を使用することができます忘れてはいけない、非常に素敵な"&"); \t}'両方とも動作しますが、jsonのアプローチは私の怠惰なプログラマーに訴えます; – Leigh

関連する問題