我正在使用Catalyst :: View :: JSON和 Catalyst :: TraitFor :: Controller :: jQuery :: jqGrid来检索JSON数据 到首页。以下是有关的代码(多部分来自 催化剂复制:: TraitFor ::控制器:: jQuery的:: jqGrid的例子): Catalyst :: View :: JSON和jqGrid数据格式问题
package UW::Controller::Site; use utf8; use Moose; use namespace::autoclean; BEGIN {extends 'Catalyst::Controller'; } with 'Catalyst::TraitFor::Controller::jQuery::jqGrid'; sub json : Local{ my ($self, $c) = @_; my $merchant_rs = $c->model('WindyDB::Merchant')->search({}); $merchant_rs = $self->jqgrid_page($c, $merchant_rs); my $row = 0; my @row_data; my $i = 0; while (my $mer = $merchant_rs->next){ $i ++; my $mer_id = $mer->mer_id; $c->log->debug($mer_id); my $single_row = { 'id' => $i, 'cell' => [ 'id' => $mer->mer_id, 'name' => $mer->mer_name, ], }; push @row_data, $single_row; } $c->log->debug(@row_data); $c->stash->{json_data}->{rows} = \@row_data; $c->stash->{current_view} = 'JSON'; }
但是我发现格式是一点都不奇怪:
{"current_view":"JSON","json_data":{"page":0,"records":"8","rows":[{id:1, cell:["test1","6"]},{id:2, cell["test2","7"]}],"total":1}}
其实,jqGrid的doument,数据格式应该是:
{ total: "xxx", page: "yyy", records: "zzz", rows : [ {id:"1", cell:["cell11", "cell12", "cell13"]}, {id:"2", cell:["cell21", "cell22", "cell23"]}, ... ] }
难道这意味着 “current_view” 和 “json_data” 双顺差是?那么 有没有办法在服务器 出货之前删除current_view和json_data? 或我不正确使用模块?我是新来的Catalyst和jqGrid, 请帮忙。 任何回复真的很感激!