【问题标题】:How to remove json element?如何删除json元素?
【发布时间】:2014-05-28 00:26:46
【问题描述】:

我正在为我的表使用 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"}

谁能帮帮我。。谢谢

【问题讨论】:

  • 什么是“一些原因”?假设您使用 serverSided 示例代码进行服务器端查询,dataTables 将为您生成一个 mySQL 查询,该查询从您的数据库中获取这些行并通过 json 返回它们。如果您不想在 dataTable 中包含这些列,则根本不应该获取它们。只需将它们留在 server_processing.php $columns 配置中即可。

标签: php jquery json datatables jquery-datatables


【解决方案1】:

如果你有:

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) 等等。

运行这两个清理将产生所需的结果。

【讨论】:

  • 嗨@davidkonrad,它工作得很好..非常感谢.. :)
【解决方案2】:

由于是JSON格式,所以可以使用正则表达式,去掉你想要的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2018-10-14
    • 2013-09-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多