我正在用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"} ]
但是,从我的休息服务器返回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"
});
答案 0 :(得分:3)
我发现从服务器返回的数据没有问题。您应该只使用jqGrid的jsonReader选项,它通知jqGrid如何从服务器响应中读取数据。例如
jsonReader: {root: "yazi", repeatitems: false}
更新:The demo使用您发布的确切JSON数据,并在网格中显示结果。我使用了您发布的JavaScript代码,仅将height: 255
替换为height: "auto"
以获得更紧凑的结果。
我在您的代码中看到的唯一问题是使用完整网址:url:'http://localhost:43842/KodcuComRESTful/kodcuRS/yazilar'
。由于same origin policy限制,无法从另一个源获取每个Ajax的JSON数据作为相同的站点和端口。因此,在使用datatype: "json"
的情况下,您应该始终使用相对网址路径,例如url:'/KodcuComRESTful/kodcuRS/yazilar'
。