1

私はjax-rsを使用してWebアプリケーションを開発していますが、jqueryを使用してRESTクライアントを作成しました。結果をjsonまたはxmlとして取得し、それらをhtmlテーブルに表示しています。テーブルを容易にするために、JqGridライブラリを使用します。私の問題は、たとえば、Jqgridが以下のようにオブジェクトをjsonしたいということです。

[
        {yaziNo:"1",yazar:"abc",yazi:"test",tarih:"2007-10-01"}, 
        {yaziNo:"2",yazar:"cdfe",yazi:"test2",tarih:"2007-10-01"},
        {yaziNo:"3",yazar:"cdfe",yazi:"test3",tarih:"2007-10-01"}, 
        {yaziNo:"4",yazar:"abc",yazi:"test",tarih:"2007-10-01"}, 
        {yaziNo:"5",yazar:"cdfe",yazi:"test2",tarih:"2007-10-01"}, 
        {yaziNo:"6",yazar:"abc",yazi:"test3",tarih:"2007-10-01"},
        {yaziNo:"7",yazar:"cdfe",yazi:"test",tarih:"2007-10-01"},
        {yaziNo:"8",yazar:"abc",yazi:"test2",tarih:"2007-10-01"}, 
        {yaziNo:"9",yazar:"abc",yazi:"test3",tarih:"2007-10-01"}     ]

しかし、以下のようなRESTサーバーからJSONを返しました。

{"yazi":
[{"tarih":"26.01.2012","yazar":"sdasdadsadasda","yazi":"gdfgdfgd","yaziNo":"1756"},
{"tarih":"26.01.2012","yazar":"sdasdadsadasda","yazi":"gdfgdfgd","yaziNo":"1755"},
{"tarih":"26.01.2012","yazar":"sdasdadsadasda","yazi":"gdfgdfgd","yaziNo":"1754"},
{"tarih":"26.01.2012","yazar":"sdasdadsadasda","yazi":"gdfgdfgd","yaziNo":"1753"},
{"tarih":"26.01.2012","yazar":"sdasdadsadasda","yazi":"gdfgdfgd","yaziNo":"1752"}]
}

「yazi」ノードを削除し、内部に保持するにはどうすればよいですか。

編集:

jQuery("#list27").jqGrid({
    url:'http://localhost:43842/KodcuComRESTful/kodcuRS/yazilar',
    datatype: "json",
    height: 255,
    width: 700,
    jsonReader: {root: "yazi", repeatitems: false},
    colNames:['Yazi No','Yazar', 'Yazi', 'Tarih'],
    colModel:[
        {name:'yaziNo',index:'yaziNo', width:80, sorttype:"int"},
        {name:'yazar',index:'yazar', width:180}, 
        {name:'yazi',index:'yazi', width:370}, 
        {name:'tarih',index:'tarih', width:100, align:"right",sortype:"date"}
    ],
    rowNum:10,
    rowTotal: 2000,
    rowList : [20,30,50],
    loadonce:true,
    mtype: "GET", 
    rownumbers: true,
    rownumWidth: 40, 
    gridview: true, 
    pager: '#pager27',
    sortname: 'yaziNo',
    viewrecords: true,
    sortorder: "asc",
    caption: "Loading data from server at once"
});
4

1 に答える 1

3

サーバーから返されたデータに問題はありません。サーバー応答からデータを読み取る方法を jqGrid に通知する jqGrid のjsonReaderオプションを使用する必要があります。例えば

jsonReader: {root: "yazi", repeatitems: false}

UPDATED :デモは投稿した正確な JSON データを使用し、結果をグリッドに表示します。あなたが投稿して置き換えたJavaScriptコードを使用height: 255height: "auto"て、よりコンパクトな結果を得ました。

ここに画像の説明を入力

あなたのコードに見られる唯一の問題は、完全な URL: の使用ですurl:'http://localhost:43842/KodcuComRESTful/kodcuRS/yazilar'同一オリジン ポリシーの制限により、同じサイトおよびポートから別のソースから Ajax ごとに JSON データを取得することはできません。したがって、使用する場合は、たとえば次のようにdatatype: "json"常に相対URL パスを使用する必要があります。url:'/KodcuComRESTful/kodcuRS/yazilar'

于 2012-06-25T12:27:38.097 に答える