解决PHP类私有成员 json_encode取不了值的问题

来源:互联网 发布:思迅服装软件 编辑:程序博客网 时间:2024/05/21 21:44

解决PHP类私有成员 json_encode取不了值的问题

<?phpuse JMS\Serializer\Naming\IdenticalPropertyNamingStrategy;use JMS\Serializer\SerializerBuilder;use JMS\Serializer\SerializerInterface;class Ml implements JsonSerializable{    private $name;    private $age;    public function __construct($aParams) {        foreach ($aParams as $key => $val) {            if (property_exists($this, $key)) $this->$key = $val;        }    }    /**     * 生成对象实例     *      * @param array $aParams     *      * @return Ml     */    static public function bind(array $aParams)    {        $oVO = new Ml($aParams);        return $oVO;    }    public function jsonSerialize() {        $data = [];        foreach ($this as $key=>$val)        {            if ($val !== null) $data[$key] = $val;        }        return $data;    }    public static function cc()    {        $data = Ml::bind([            'name'  => 'cc',            'age'   => '12',            'me'    => 'ken',        ]);        $serializer = SerializerBuilder::create()                        ->setPropertyNamingStrategy(new IdenticalPropertyNamingStrategy())                        ->build();        // print '\n';        $sdata = $serializer->serialize($data, 'json');        echo json_encode($sdata);        echo '<hr/>';        echo json_encode($data);    }}

结果

"{\"name\":\"cc\",\"age\":\"12\"}"

{"name":"cc","age":"12"}
0 0
原创粉丝点击