URLで使用する文字列として単一レベルの構造体をシリアライズする簡単な方法はありますか?例えばColdfusion:urlで構造体をStringとして渡す
:
?key1=val1&key2=val2
URLで使用する文字列として単一レベルの構造体をシリアライズする簡単な方法はありますか?例えばColdfusion:urlで構造体をStringとして渡す
:
?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#" />
私の解決策について私が言うことができるのは、もっと複雑な構造体で動作するということだけです。ポールは私より速くタイプします!:D – BKK
私はこの解決策についても考えました。あなたが言ったように複雑な構造体を扱うことができますが、y私はこの例では非常によく似た何かを、フォーム経由で行った:http://stackoverflow.com/questions/10392604/coldfusion-serializejson-example/10392839#10392839 – Paul
偉大な答えは、ベン! –