【发布时间】:2011-12-05 14:53:36
【问题描述】:
我一直在寻找解决问题的方法,但没有成功,所以我在这里问。
我们如何在包含私有属性的对象数组(或只是一个对象)上返回一个 json 编码的结果?
确实,当您使用 json_encode($myObject) 时,它不会显示私有或受保护的属性,而这些属性在使用 Symfony 时在模型中无处不在......
我很惊讶我找不到像 json_encode 这样会调用 getter 而不是属性本身的方法。
有什么想法吗?
编辑
在这种情况下,我宁愿做一个看起来像这样的独特功能:
public function toArray() {
$vars = get_object_vars($this);
$result = array();
foreach ($vars as $key => $value) {
if (is_object($value)) {
$result[$key] = toArray($value);
} else {
$result[$key] = $value;
}
}
return $result;
}
为了避免每次都重写每个属性名...
但无论如何我想我会创建一个包含我需要的变量的数组,这样我就不会接触模型(这是生成的代码)。
【问题讨论】:
-
请使用标题字段描述您的问题。