如何在PHP5中创建嵌套的json对象

时间:2014-01-10 17:06:21

标签: php json nested

我知道这可能很简单,但我很困难,无法找到解决方案。我只想创建一个简单的嵌套json对象,如下所示:

{
   "user": {"firstname":"foo","lastname":"bar","email":"foo.bar@somedomain.com"}
}

到目前为止,我可以按如下方式创建内部json:

class user_profile {
    private $firstname = '';
    private $lastname ='';
    private $email = '';
    public function __construct($first, $last, $email){
        $this->firstname = $first;
        $this->lastname = $last;
        $this->email = $email;
    }
    public function expose() {
        return get_object_vars($this);
    }

}
$up = new user_profile('foo','bar','foo.bar@somedomain.com');
echo json_encode($up->expose());

我尝试添加一个数组:

echo json_encode(array('user',$up->expose()), JSON_FORCE_OBJECT);

但结果是:

{
    "0":"user","1":    {"firstname":"foo","lastname":"bar","email":"foo.bar@somedomain.com"}
}

如何创建外部“用户”部分?

1 个答案:

答案 0 :(得分:1)

您可以执行json_encode(array('user' => $up->expose());

所以基本上你唯一的错误就是使用,而不是=>,这会给你一个带有两个对象的数组,而不是一个带有key =>的关联数组。值。