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


Saving an object as JSON, and then loading it later?

我知道如何JSON编码和解码对象。这没什么大不了的。但是,我已经达到了一种情况,我需要将$this保存为JSON字符串,然后再从该JSON字符串填充$this的属性。

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

我该怎么做呢?

您可以使用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;
            }
        }
    }
}