jquery JSON节点删除

时间:2012-06-25 12:15:38

标签: json jqgrid

我正在用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"
});

1 个答案:

答案 0 :(得分:3)

我发现从服务器返回的数据没有问题。您应该只使用jqGrid的jsonReader选项,它通知jqGrid如何从服务器响应中读取数据。例如

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

更新The demo使用您发布的确切JSON数据,并在网格中显示结果。我使用了您发布的JavaScript代码,仅将height: 255替换为height: "auto"以获得更紧凑的结果。

enter image description here

我在您的代码中看到的唯一问题是使用完整网址:url:'http://localhost:43842/KodcuComRESTful/kodcuRS/yazilar'。由于same origin policy限制,无法从另一个源获取每个Ajax的JSON数据作为相同的站点和端口。因此,在使用datatype: "json"的情况下,您应该始终使用相对网址路径,例如url:'/KodcuComRESTful/kodcuRS/yazilar'