将对象保存为JSON,然后再加载它?

时间:2013-04-24 14:44:48

标签: php

我知道如何对对象进行JSON编码和解码。那不是什么大问题。但是,我遇到了一种情况,我需要将$this保存为JSON字符串,然后再从该JSON字符串中填充$this的属性。

换句话说,我不想使用JSON字符串中的数据获取对象的新实例,我想将其应用于现有对象。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用get_object_vars() http://php.net/manual/en/function.get-object-vars.php

获取对象的已定义属性
class MyClass
{
    function populateFromJSON($data)
    {
        $o = json_decode($data);
        $attributes = get_object_vars($o);
        if (is_array($attributes)) {
            foreach ($attributes as $name => $val) {
                $this->$name = $val;
            }
        }
    }
}
相关问题