2009-08-10 13 views
1

JQGrid JSON Webサービスをセットアップして、JQUERYのjqGridプラグインを設定しようとしています。 は現在、私は私のコードで以下の出力をしています:jqGridのColdFusion + JSON問題

電流: { "合計":2、 "記録":13、 "ページ":1、 "ROWS":{ "arrUsers":[{ "1":1、 "4": "bgf"、 "3": "faaff"、 "5": "ASD"、 "2": "asd"、 "7": "1231231233" "123asd"}]}}

jqGridが期待するものであり、所望の出力は、次のとおり希望

{"page":"1","total":2,"records":"13",  "rows":[{"id":"13","cell":["13","2007-10-06","Client 3","1000.00","0.00","1000.00",null]},{"id":"12","cell":["12","2007-10-06","Client 2","700.00","140.00","840.00",null]},{"id":"11","cell":["11","2007-10-06","Client 1","600.00","120.00","720.00",null]},{"id":"10","cell":["10","2007-10-06","Client 2","100.00","20.00","120.00",null]},{"id":"9","cell":["9","2007-10-06","Client 1","200.00","40.00","240.00",null]},{"id":"8","cell":["8","2007-10-06","Client 3","200.00","0.00","200.00",null]},{"id":"7","cell":["7","2007-10-05","Client 2","120.00","12.00","134.00",null]},{"id":"6","cell":["6","2007-10-05","Client 1","50.00","10.00","60.00",null]},{"id":"5","cell":["5","2007-10-05","Client 3","100.00","0.00","100.00","no tax"]},{"id":"4","cell":["4","2007-10-04","Client 3","150.00","0.00","150.00","no tax"]}],"userdata":{"amount":3220,"tax":342,"total":3564,"name":"Totals:"}} 

私のコードが書いている書式が間違っています、誰でも解決するための提案はありますか?

ありがとうございます!

コード:

<cfscript> 
thestruct["page"] = 1; 
thestruct["total"] = 2; 
thestruct["records"] = 13; 

thestruct.rows["arrUsers"] = arraynew(1); 
thestruct.rows.arrUsers[1]["id"] = 1; 
thestruct.rows.arrUsers[1]["FirstName"] = "asd"; 
thestruct.rows.arrUsers[1]["LastName"] = "faaff"; 
thestruct.rows.arrUsers[1]["DisplayName"] = "bgf"; 
thestruct.rows.arrUsers[1]["UserName"] = "ASD"; 
thestruct.rows.arrUsers[1]["UserAccountingCode"] = "123asd"; 
thestruct.rows.arrUsers[1]["Phone"] = "1231231233'"; 

</cfscript> 



<cfinvoke component="_system.components.JSON" method="encode" data="#thestruct#" returnvariable="result" /> 

<cfoutput>#result#</cfoutput> 
+0

DeSerializeJSON()jqGridが期待する出力とCFDUMPを出力すると、簡単に構造体を構築する方法がわかります。 :) – Henry

答えて

3

これは、クエリオブジェクトのためのAdobeのJSON形式のリターンです。全体的なデータパケットのサイズは小さくてすみますが、すべて同じフォーマットが必要なフレームワークを扱うときは面白いです。

カスタムデータリーダーを(私はExtJSのための1つを書いた)を見つける必要があるでしょうか、あなたはJSONのリターン形式を使用して停止する必要があり、GENあなたの出力にJson.CFCを(それをグーグル)使用します。

+0

スティーブ、返事をありがとう。上記のJson.CFCを使用して、私はthestructを間違って設定していると推測している、私は正しい構造を作成し、Json.CFCが目的のフォーマットに一致するように私にポインタを与えることができますか? 〜する – AnApprentice

0

開始するにはいくつかの基本的な問題があります。 1つは、 "arrUsers"要素を削除するだけです。 「行」キーは配列でなければなりません。

第2に、「希望の」フォーマットでは、「ページ」と「レコード」の値は文字列(数値を含む)ですが、「合計」の値は数値です。

"page":"1","total":2,"records":"13" 

CFはなく、数値の文字列としてそれらをコードするよう、私は(彼らはJSONの文字列である必要があれば)引用符で囲まれた文字列でなければなりませんものをラップしようとするだろう。

それ以外は、まったく同じフィールドと一致するようには見えないので、これ以上修正することはできません。まだ問題がある場合は教えてください。

<cfscript> 
    thestruct["page"] = "1"; 
    thestruct["total"] = 2; 
    thestruct["records"] = "13"; 

    thestruct.rows = arrayNew(1); 
    thestruct.rows[1] = structNew(); 
    thestruct.rows[1]["id"] = 1; 
    thestruct.rows[1]["FirstName"] = "asd"; 
    thestruct.rows[1]["LastName"] = "faaff"; 
    thestruct.rows[1]["DisplayName"] = "bgf"; 
    thestruct.rows[1]["UserName"] = "ASD"; 
    thestruct.rows[1]["UserAccountingCode"] = "123asd"; 
    thestruct.rows[1]["Phone"] = "1231231233'"; 
</cfscript> 
関連する問題