用json_encode()获取一个空字符串

See attached code. for some reason the json_encode() is returning an empty string.
I call it by using $jv = Video::ConvertToJson($video);
Using breakpoints I verified that $video wasn't null, etc.
(using PHP 5.3)
Any ideas?
thx

class Video
{
    private $ID;
    private $Title;
    private $ViewCount;
    private $Description;
    private $IsEmbeddable;
    private $IsPrivate;

    function __construct($id = 0, $title = '', $viewcount=0, $description='', $isembeddable=1, $isprivate=0){
        $this->ID = $id;
        $this->Title = $title;
        $this->ViewCount = $viewcount;
        $this->Description = $description;
        $this->IsEmbeddable = $isembeddable;
        $this->IsPrivate = $isprivate;
    }
    /**
     *
     * Converts a Tfyoutubevideo into a json object
     * @param models\TfYoutubevideos $tfv
     */
     public static function ConvertToJson(models\TfYoutubevideos $tfv){
        $v = new Video();
        $v->ID = $tfv->getId();
        $v->Title = $tfv->getVideotitle();
        $v->ViewCount = $tfv->getVideoviewcount();
        $v->Description = $tfv->getVideoDescription();
        $v->IsEmbeddable = $tfv->getVideoIsEmbeddable();
        $v->IsPrivate = $tfv->getVideoIsPrivate();
        $vj = json_encode($v);
        return $vj;

     }
}

json_encode does not serialize private (or protected) member variables. Either copy your object's state into a temporary array or declare member variables as public to mitigate that.