NakajimaさんのLife is beautifulのiAnime.js のドキュメントがようやく完成というエントリーを読んで、GoogleCodeにOpenSourceを公開することができるんだーということを知りました。
で、GoogleCodeに何か、ホスティングしたいなぁーと思ったのですが、どんなソースを作っていいのかわからず公開しようか悩んでしまいました。
悩んでいても始まらないので、「こんなファンクションがあったら便利だろうなー」と視点を変えて考えてみたら、Cfの変数からJSONを作成するファンクションがほしいなーと思い、toJSONファンクションというのを作ってみました。
ソースはこのような感じです。
<CFFUNCTION name="toJSON"> <!--- declare arguments ---> <CFARGUMENT name="aArray" type="array" REQUIRED="yes"> <CFARGUMENT name="aScr" type="boolean" REQUIRED="no" default=true> <CFARGUMENT name="aInd" type="numeric" REQUIRED="no" default=0> <CFARGUMENT name="aName" type="string" REQUIRED="no" default="data"> <!--- declare variables ---> <CFSCRIPT> var i = ""; var tmp = ""; var ind = ""; </CFSCRIPT> <CFOUTPUT> <!--- if aScr is true , make SCRIPT tag ---> <CFIF aScr EQ true> <!--- make SCRIPT tag ---> <SCRIPT type="text/javascript"> </CFIF> <CFSET ind = aInd> <!--- output JSON ---> var #aName# = { <!--- loop From 1 TO aArray'slength ---> <CFLOOP index="i" from="1" to="#ArrayLen(aArray)#"> <CFSET tmp = Evaluate("aArray[#i#]")> <CFIF i NEQ 1>,</CFIF>#ind#:#IIF(tmp NEQ "" , DE("#tmp#"), DE("null"))# <CFSET ind = ind + 1> </CFLOOP> }; <!--- if aScr is true , make SCRIPT tag ---> <CFIF aScr EQ true> <!--- make SCRIPT tag ---> </SCRIPT> </CFIF> </CFOUTPUT> </CFFUNCTION> |
例えば、以下のようなCFの配列があったとします。
Array[1] = "hoge"
Array[2] = "test"
Array[3] = "sample"
このファンクションを通して、上の配列が下のようなJSONを生成します。
var data = {0:"hoge",1:"test",2:"sample"};
このように、JSONに変換することで、サーバサイドのデータをsubmitせずにJavascriptから取りにいけるようになります。
このソースを使ってホスティングするぞー。
0 コメント:
コメントを投稿