我知道如何对对象进行 JSON 编码和解码。这没什么大不了的。但是,我遇到了需要保存$this
为 JSON 字符串的情况,然后再$this
从该 JSON 字符串中填充 的属性。
换句话说,我不想使用 JSON 字符串中的数据获取对象的新实例,我想将其应用于现有对象。
我怎样才能做到这一点?
我知道如何对对象进行 JSON 编码和解码。这没什么大不了的。但是,我遇到了需要保存$this
为 JSON 字符串的情况,然后再$this
从该 JSON 字符串中填充 的属性。
换句话说,我不想使用 JSON 字符串中的数据获取对象的新实例,我想将其应用于现有对象。
我怎样才能做到这一点?
您可以使用http://php.net/manual/en/function.get-object-vars.php获取对象的定义属性get_object_vars()
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;
}
}
}
}