我们的 PHP 应用程序大量使用了 json_encode($myObject) 以及 mustache 模板库。这很棒。
麻烦的是,当从 ajax 请求返回 json 数据时,它揭示了我们对象的整个结构,即使我们没有为它们分配数据。一个简单的例子:
通过 ajax 获取用户并让服务器返回带有 json_encode($user) 的对象
json:
"_userID":"1","_password":null,"_avatar":"0000723_8949d1d7eb0214fdf6c1af3cb6b66ed3_a.jpg","_blocked":null,"_confirmed":null,"_registerDate":null,"_lastVisitDate":null,"_template":null,"_referrerUserID":null,"_referrerURL":null,"_referrerDomain":null,"_referrerSearchTerms":null,"_confirmationHash":null,"_type":"Administrator"
等等...
当我只想返回几个字段时,它揭示了我们的对象的很多信息。
显然,我可以重写我们的服务器端代码以发送回一个数组或不同的对象,这些对象更受限制,但实际上这使生活变得更加困难,并且有点妨碍我们处理与服务器相同的对象的干净模板设计。
如何清除 json_encode 中的所有空属性。有没有其他人有这个问题和一个好的和干净的解决方案?