1

JQUERYのjqGridプラグインを設定するためにjqGrid JSON Webサービスをセットアップしようとしています。現在、私は自分のコードで次を出力しています:

現在: {"total":2,"records":13,"page":1, "ROWS":{"arrUsers":[{"1":1,"4":"bgf","3": "faaff","5":"ASD","2":"asd","7":"1231231233'","6":"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>
4

2 に答える 2

3

これは、クエリオブジェクトに対するAdobeのJSON形式の戻り値です。全体的なデータパケットサイズが小さいという点で優れていますが、すべて同じ形式を期待するフレームワークを操作する場合は興味深いものになります。

カスタムデータリーダー(私はExtJ用に作成しました)を見つけるか、JSON戻り形式の使用を停止し、Json.CFC(google it)を使用して出力を生成する必要があります。

于 2009-08-10T10:24:19.563 に答える
0

開始するいくつかの基本的な問題が表示されます。1 つには、「arrUsers」要素を削除するだけです。「rows」キーは、配列であるべきものです。

次に、「目的の」形式では、「page」と「records」の値は文字列 (数値を含む) ですが、「total」の値は数値です。

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

文字列であるべきものを引用符で囲み (JSON で文字列にする必要がある場合)、CF がそれらを数値ではなく文字列としてエンコードするようにします。

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

<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>
于 2009-08-11T16:49:30.630 に答える