为了账号安全,请及时绑定邮箱和手机立即绑定

PHP json_encode类私有成员

PHP json_encode类私有成员

PHP
慕容708150 2019-12-04 10:27:33
我正在尝试对PHP中的某些对象进行JSON编码,但是我遇到了一个问题:我想对由类私有成员保存的数据进行编码。我发现这段代码通过调用类似以下的编码函数来编码此对象:public function encodeJSON() {     foreach ($this as $key => $value)     {         $json->$key = $value;     }     return json_encode($json); }但是,只有在我要编码的对象内部不包含其他对象的情况下,这才有效。我该如何不仅对“外部”对象进行编码,还对作为对象的任何成员进行编码?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

序列化具有私有属性的对象的最佳方法是实现\ JsonSerializable接口,然后实现自己的JsonSerialize方法以返回需要序列化的数据。


<?php


class Item implements \JsonSerializable

{

    private $var;

    private $var1;

    private $var2;


    public function __construct()

    {

        // ...

    }


    public function jsonSerialize()

    {

        $vars = get_object_vars($this);


        return $vars;

    }

}

json_encode 现在将正确序列化您的对象。


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 467 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信