我有一个数组,我为我正在构建的API编码为JSON,该数组来自数据库并包含一些我不想在JSON响应中使用的数据。所以我当然可以做的只是迭代数组,修改它然后将修改后的数组传递给json_encode()
。但是当json_encode()本身迭代它时,我想我可以提高性能甚至可读性,如果我能以某种方式告诉json_encode
在生成JSON的同时过滤掉某些键。
似乎json_encode
不能使这成为可能,但也许还有其他一些我可以用来编码到json的东西呢?我看到json_encode()有一个选项参数可以改变行为,但你似乎无法添加自己的?
例如,我记得我曾经浏览过一个json解析器类,并且它有一个名为parseKey($key, $val)
的方法,如果你想添加一个过滤器,你可以覆盖它。
答案 0 :(得分:1)
你可以这样做:
$data = array("foo"=>1, "bar"=>2, "baz"=>3);
$rmk = array("foo");
$json = json_encode(array_diff_key($data, array_flip($rmk)));
这将使用$rmk
中的键过滤掉值。但是,当谈到提高可读性时,我不确定。