public function _encode()
    {
        $out = array();
        if ($this->objectId)
        {
            $out['objectId'] = $this->objectId;
        }
        if ($this->createdAt)
        {
            $out['createdAt'] = $this->createdAt;
        }
        if ($this->updatedAt)
        {
            $out['updatedAt'] = $this->updatedAt;
        }
        foreach ($this->serverData as $key => $value)
        {
            $out[$key] = $value;
        }
        foreach ($this->estimatedData as $key => $value)
        {
            if (is_object($value) && $value instanceof \Avos\Internal\Encodable)
            {
                $out[$key] = $value->_encode();
            } else if (is_array($value))
            {
                $out[$key] = array();
                foreach ($value as $item)
                {
                    if (is_object($item) && $item instanceof \Avos\Internal\Encodable)
                    {
                        $out[$key][] = $item->_encode();
                    } else
                    {
                        $out[$key][] = $item;
                    }
                }
            } else
            {
                $out[$key] = $value;
            }
        }

        return json_encode($out);
    }