如何删除json元素?

时间:2014-05-28 00:26:46

标签: php jquery json datatables jquery-datatables

我正在为我的表使用dataTables插件,它有一个来自数据库的json数据,如:

{"sEcho":0,
"iTotalRecords":1,
"iTotalDisplayRecords":1,
"aaData":[["contentFieldA","contentFieldB","contentFieldC"],
          ["contentFieldA","contentFieldB","contentFieldC"]],
"sColumns":"fieldA,fieldB,fieldC"}

由于某种原因,我需要删除第一个索引上的“aaData”和“sColumns”值(因此应删除“contentFieldA”和“fieldA”)。并且json数据将是:

{"sEcho":0,
 "iTotalRecords":1,
 "iTotalDisplayRecords":1,
 "aaData":[["contentFieldB","contentFieldC"],
           ["contentFieldB","contentFieldC"]],
 "sColumns":"fieldB,fieldC"}

任何人都可以帮助我..谢谢

2 个答案:

答案 0 :(得分:0)

由于它是JSON,您可以使用正则表达式并删除您想要的内容:

PHP:http://au1.php.net/preg_replace JS:http://www.w3schools.com/jsref/jsref_replace.asp

答案 1 :(得分:0)

如果你有:

var test = {"sEcho":0,
"iTotalRecords":1,
"iTotalDisplayRecords":1,
"aaData":[["contentFieldA","contentFieldB","contentFieldC"],
          ["contentFieldA","contentFieldB","contentFieldC"]],
"sColumns":"fieldA,fieldB,fieldC"};

aaData是一个数组数组,所以删除每个子数组的第一个索引,如下所示:

for (var i=0;i<test['aaData'].length;i++) {
    test['aaData'][i].splice(0,1);
}

sColumns删除第一个索引有点困难,因为它是一个字符串:

test['sColumns']=test['sColumns'].split(',').splice(1,2).join();

请注意,splice(1,2)是硬编码的,如果您有4列,则应为splice(1,3),5列为splice(1,4),依此类推。

运行这两次清理将获得所需的结果。