Dojo+;数据网格&x2B;JsonRest&x2B;自定义json

Dojo+;数据网格&x2B;JsonRest&x2B;自定义json,json,rest,datagrid,dojo,Json,Rest,Datagrid,Dojo,我有以下问题。我的REST web服务返回json,如下所示: {“响应”:{“标题”:“”“项目”:{“项目”:[{“@id”:“1”,“电子邮件”:”admin@admin,“firstname”:“admin”,“lastname”:“admin”,“login”:“admin”},{“@id”:“2”,“email”:Bennett@Tawney.com“,”姓氏“:”贝内特“,”姓氏“:”塔尼“,”登录“:”贝内特“} 如何强制DataGrid显示上面json中的项目?我不能更改RES

我有以下问题。我的REST web服务返回json,如下所示:

{“响应”:{“标题”:“”“项目”:{“项目”:[{“@id”:“1”,“电子邮件”:”admin@admin,“firstname”:“admin”,“lastname”:“admin”,“login”:“admin”},{“@id”:“2”,“email”:Bennett@Tawney.com“,”姓氏“:”贝内特“,”姓氏“:”塔尼“,”登录“:”贝内特“}

如何强制DataGrid显示上面json中的项目?我不能更改REST web服务,它必须以这种格式返回json。Http请求正常,服务器返回我的json,但DataGrid没有填写。你知道吗

我的“dojo”代码如下:

var store = new Cache(new JsonRest({ target: settings.vars.API_URL + "/frapi/users/load", start: page * rows, count: 10, sort: [ {attribute: "id", descending: true} ], headers: { "Content-Type": "application/json" } }), Memory()); grid = new DataGrid({ store: new ObjectStore({objectStore: store}), queryOptions: {}, structure:[{ defaultCell: { width: "auto" }, cells: [ {name: "Id", field: "id", width: "50px"}, {name: "Login", field: "login"}, {name: "Email", field: "email", width: "200px"}, {name: "Firstname", field: "firstname"}, {name: "Lastname", field: "lastname"} ] }] }, "grid"); grid.startup(); var store=new缓存(new JsonRest({ 目标:settings.vars.API_URL+“/frapi/users/load”, 开始:第页*行, 计数:10, 排序:[ {属性:“id”,降序:true} ], 标题:{ “内容类型”:“应用程序/json” } }),内存()); 网格=新的数据网格({ 存储:新对象存储({ObjectStore:store}), 查询选项:{}, 结构:[{ 默认单元格:{ 宽度:“自动” }, 单元格:[ {名称:“Id”,字段:“Id”,宽度:“50px”}, {name:“Login”,字段:“Login”}, {名称:“电子邮件”,字段:“电子邮件”,宽度:“200px”}, {name:“Firstname”,字段:“Firstname”}, {name:“Lastname”,字段:“Lastname”} ] }] }“网格”); grid.startup();
提前感谢

好的,我找到了解决方案。请参见下面的代码:

var extractItemsFromResponse = function(deferred) { return deferred.then(function(response) { return response.response.items.item; }); }; aspect.after(store, "query", extractItemsFromResponse); var extractItemsFromResponse=函数(延迟){ 返回延迟。然后(函数(响应){ 返回response.response.items.item; }); }; aspect.after(存储,“查询”,从响应中提取项); 我希望这对你有帮助